Tcl
Tcl
Google OAuth2 v3 userinfo (https://www.googleapis.com/oauth2/v3/userinfo)
See more Google APIs Examples
Demonstrates how to get the Google OAuth2 v3 userinfo.Important: Make sure the OAuth2 access token included "profile" in the list of scopes.
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# It is assumed we previously obtained an OAuth2 access token.
# This example loads the JSON access token file
# originally obtained by this example: Get Google People API OAuth2 Access Token
# or refreshed by this example: Refresh Google People API OAuth2 Access Token
set jsonToken [new_CkJsonObject]
set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/googlePeople.json"]
if {$success != 1} then {
puts "Failed to load googleContacts.json"
delete_CkJsonObject $jsonToken
exit
}
set http [new_CkHttp]
# -------------------------------------------------------------------------------------
# Make sure the access token was obtained with "profile" included in the list of scopes.
# -------------------------------------------------------------------------------------
CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"]
set sbResponseBody [new_CkStringBuilder]
set success [CkHttp_QuickGetSb $http "https://www.googleapis.com/oauth2/v3/userinfo" $sbResponseBody]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
puts [CkStringBuilder_getAsString $sbResponseBody]
delete_CkJsonObject $jsonToken
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
exit
}
# Sample JSON Response
set json [new_CkJsonObject]
CkJsonObject_put_EmitCompact $json 0
CkJsonObject_Load $json [CkStringBuilder_getAsString $sbResponseBody]
puts [CkJsonObject_emit $json]
# Sample response:
# {
# "sub": "119999690625687999964",
# "name": "Matt",
# "given_name": "Matt",
# "picture": "https://lh3.googleusercontent.com/-b4...eg3Zjo/AAAAAAAAAAI/AAAAAAAAAAA/AMZuu....3RpdA/s96-c/photo.jpg",
# "locale": "en"
# }
#
delete_CkJsonObject $jsonToken
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $json