Sample code for 30+ languages & platforms
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

Tcl

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