Why is Google Calendar API (oauth2) responding with 'Insufficient Permission'?

rob_mccann picture rob_mccann · Jun 6, 2013 · Viewed 37k times · Source

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}

A few assertions:

  1. The Authorize header is being correctly set with a valid access token (the token works fine for the Analytics API)

  2. I've set the following scope for oauth2, which shows up correctly:

    https://www.googleapis.com/auth/calendar
    
  3. 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" } }
    

Answer

rob_mccann picture rob_mccann · Jun 6, 2013

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.