Gets the current user's Gmail profile, but shows an error response and how to parse it..
integer li_rc
oleobject loo_Rest
integer li_Success
oleobject loo_Oauth2
oleobject loo_SbJson
oleobject loo_Json
integer li_ErrorCode
string ls_ErrorMessage
integer i
integer li_Count_i
string ls_Domain
string ls_Reason
string ls_Message
string ls_ExtendedHelp
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat_9_5_0.Rest")
if li_rc < 0 then
destroy loo_Rest
MessageBox("Error","Connecting to COM object failed")
return
end if
// Provide a previously obtained OAuth2 access token.
loo_Oauth2 = create oleobject
li_rc = loo_Oauth2.ConnectToNewObject("Chilkat_9_5_0.OAuth2")
loo_Oauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
loo_Rest.SetAuthOAuth2(loo_Oauth2)
li_Success = loo_Rest.Connect("www.googleapis.com",443,1,1)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
destroy loo_Oauth2
return
end if
loo_Rest.AddPathParam("userId","matt@chilkat.io")
loo_SbJson = create oleobject
li_rc = loo_SbJson.ConnectToNewObject("Chilkat_9_5_0.StringBuilder")
li_Success = loo_Rest.FullRequestNoBodySb("GET","/gmail/v1/users/userId/profile",loo_SbJson)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
destroy loo_Oauth2
destroy loo_SbJson
return
end if
if loo_Rest.ResponseStatusCode <> 200 then
Write-Debug "Received error response code: " + string(loo_Rest.ResponseStatusCode)
Write-Debug "Response body:"
Write-Debug loo_SbJson.GetAsString()
destroy loo_Rest
destroy loo_Oauth2
destroy loo_SbJson
return
end if
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat_9_5_0.JsonObject")
loo_Json.LoadSb(loo_SbJson)
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
li_ErrorCode = loo_Json.IntOf("error.code")
ls_ErrorMessage = loo_Json.StringOf("error.message")
i = 0
li_Count_i = loo_Json.SizeOfArray("error.errors")
do while i < li_Count_i
loo_Json.I = i
ls_Domain = loo_Json.StringOf("error.errors[i].domain")
ls_Reason = loo_Json.StringOf("error.errors[i].reason")
ls_Message = loo_Json.StringOf("error.errors[i].message")
ls_ExtendedHelp = loo_Json.StringOf("error.errors[i].extendedHelp")
i = i + 1
loop
Write-Debug "Example Completed."
destroy loo_Rest
destroy loo_Oauth2
destroy loo_SbJson
destroy loo_Json
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. Gmail API has not been used in project 377697329735 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/gmail.googleapis.com/overview?project=377697329735 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"extendedHelp": "https://console.developers.google.com/apis/api/gmail.googleapis.com/overview?project=377697329735"
}
],
"code": 403,
"message": "Access Not Configured. Gmail API has not been used in project 377697329735 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/gmail.googleapis.com/overview?project=377697329735 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
}
}