Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loJsonToken
LOCAL loHttp
LOCAL loSbResponseBody
LOCAL loJson

lnSuccess = 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

loJsonToken = CreateObject('Chilkat.JsonObject')
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/googlePeople.json")
IF (lnSuccess <> 1) THEN
    ? "Failed to load googleContacts.json"
    RELEASE loJsonToken
    CANCEL
ENDIF

loHttp = CreateObject('Chilkat.Http')

*  -------------------------------------------------------------------------------------
*  Make sure the access token was obtained with "profile" included in the list of scopes.
*  -------------------------------------------------------------------------------------
loHttp.AuthToken = loJsonToken.StringOf("access_token")

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb("https://www.googleapis.com/oauth2/v3/userinfo",loSbResponseBody)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    ? loSbResponseBody.GetAsString()
    RELEASE loJsonToken
    RELEASE loHttp
    RELEASE loSbResponseBody
    CANCEL
ENDIF

*  Sample JSON Response

loJson = CreateObject('Chilkat.JsonObject')
loJson.EmitCompact = 0
loJson.Load(loSbResponseBody.GetAsString())
? loJson.Emit()

*  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"
*  }
*

RELEASE loJsonToken
RELEASE loHttp
RELEASE loSbResponseBody
RELEASE loJson