![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Group: Refresh OAuth2 Access TokenRefreshes an expired or non-expired OAuth2 access token for the Microsoft Group REST API. Note: This example requires Chilkat v11.0.0 or greater.
load ./chilkat.dll set success 0 # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set json [new_CkJsonObject] set success [CkJsonObject_LoadFile $json "qa_data/tokens/msGraphGroup.json"] if {$success != 1} then { delete_CkJsonObject $json exit } set req [new_CkHttpRequest] CkHttpRequest_AddParam $req "grant_type" "refresh_token" CkHttpRequest_AddParam $req "redirect_uri" "http://localhost:3017/" CkHttpRequest_AddParam $req "client_id" "MICROSOFT-GRAPH-CLIENT-ID" CkHttpRequest_AddParam $req "client_secret" "MICROSOFT-GRAPH-CLIENT-SECRET" CkHttpRequest_AddParam $req "refresh_token" [CkJsonObject_stringOf $json "refresh_token"] CkHttpRequest_AddParam $req "scope" "openid profile offline_access user.readwrite group.readwrite.all files.readwrite" set http [new_CkHttp] CkHttpRequest_put_HttpVerb $req "POST" CkHttpRequest_put_ContentType $req "application/x-www-form-urlencoded" set resp [new_CkHttpResponse] set success [CkHttp_HttpReq $http "https://login.microsoftonline.com/common/oauth2/v2.0/token" $req $resp] if {$success == 0} then { puts [CkHttp_lastErrorText $http] delete_CkJsonObject $json delete_CkHttpRequest $req delete_CkHttp $http delete_CkHttpResponse $resp exit } # Load the JSON response. CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp] CkJsonObject_put_EmitCompact $json 0 # Show the JSON response. puts [CkJsonObject_emit $json] puts "Response status code: [CkHttpResponse_get_StatusCode $resp]" # If the response status code is not 200, then it's an error. if {[CkHttpResponse_get_StatusCode $resp] != 200} then { delete_CkJsonObject $json delete_CkHttpRequest $req delete_CkHttp $http delete_CkHttpResponse $resp exit } # Save the refreshed access token JSON to a file for future requests. set fac [new_CkFileAccess] CkFileAccess_WriteEntireTextFile $fac "qa_data/tokens/msGraphGroup.json" [CkJsonObject_emit $json] "utf-8" 0 puts "Success." delete_CkJsonObject $json delete_CkHttpRequest $req delete_CkHttp $http delete_CkHttpResponse $resp delete_CkFileAccess $fac |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.