DataFlex
DataFlex
Get Access Token for Google Tasks using Service Account JSON Key
See more Google Tasks Examples
Demonstrates how to get an access token for the Google Tasks API using a Service Account JSON key.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFac
String sJsonKey
Handle hoGAuth
Variant vTlsSock
Handle hoTlsSock
String sTemp1
Boolean bTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// First load the JSON key into a string.
Get Create (RefClass(cComCkFileAccess)) To hoFac
If (Not(IsComObjectCreated(hoFac))) Begin
Send CreateComObject of hoFac
End
Get ComReadEntireTextFile Of hoFac "qa_data/googleSvcAccountKeys/ChilkatCloud-48f7737c7505.json" "utf-8" To sJsonKey
Get ComLastMethodSuccess Of hoFac To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoFac To sTemp1
Showln sTemp1
Procedure_Return
End
// A JSON private key should look like this:
// {
// "type": "service_account",
// "project_id": "chilkatcloud",
// "private_key_id": "48f7737c7505bb88eee6a20d09993e10605d466e",
// "private_key": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----\n",
// "client_email": "pip-564@chilkatcloud.iam.gserviceaccount.com",
// "client_id": "109982228323456925225",
// "auth_uri": "https://accounts.google.com/o/oauth2/auth",
// "token_uri": "https://oauth2.googleapis.com/token",
// "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
// "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/pip-564%40chilkatcloud.iam.gserviceaccount.com"
// }
Get Create (RefClass(cComChilkatAuthGoogle)) To hoGAuth
If (Not(IsComObjectCreated(hoGAuth))) Begin
Send CreateComObject of hoGAuth
End
Set ComJsonKey Of hoGAuth To sJsonKey
// Choose the scope for read/write access.
Set ComScope Of hoGAuth To "https://www.googleapis.com/auth/tasks"
// Request an access token that is valid for this many seconds.
Set ComExpireNumSeconds Of hoGAuth To 3600
Set ComSubEmailAddress Of hoGAuth To ""
// Connect to www.googleapis.com using TLS
Get Create (RefClass(cComChilkatSocket)) To hoTlsSock
If (Not(IsComObjectCreated(hoTlsSock))) Begin
Send CreateComObject of hoTlsSock
End
Get ComConnect Of hoTlsSock "www.googleapis.com" 443 True 5000 To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoTlsSock To sTemp1
Showln sTemp1
Procedure_Return
End
// Send the request to obtain the access token.
Get pvComObject of hoTlsSock to vTlsSock
Get ComObtainAccessToken Of hoGAuth vTlsSock To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoGAuth To sTemp1
Showln sTemp1
Procedure_Return
End
// Examine the access token:
Get ComAccessToken Of hoGAuth To sTemp1
Showln "Access Token: " sTemp1
// Save our access token to a file.
Get ComAccessToken Of hoGAuth To sTemp1
Get ComWriteEntireTextFile Of hoFac "qa_data/tokens/googleTasks.txt" sTemp1 "utf-8" False To iSuccess
End_Procedure