Issue
I'm doing a get request to the following URL (with {id} replaced with the id from the web interface):
https://www.googleapis.com/calendar/v3/calendars/{id}
The Authorize header is being correctly set with a valid access token (the token works fine for the Analytics API)
I've set the following scope for oauth2, which shows up correctly:
https://www.googleapis.com/auth/calendar
The token doesn't appear to have expired; it works for the Analytics API.
{ "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
Solution
To fix, I revoked access to the app at https://accounts.google.com/IssuedAuthSubTokens and retried after which, I was able to access the API correctly.
Despite having the scope in the list, and the scope showing up on Google's OAuth2 grant page, the additional scope wasn't granted.
Answered By - rob_mccann Answer Checked By - Mildred Charles (WPSolving Admin)