Je fais une requête get à l'URL suivante ({id} étant remplacé par l'id de l'interface Web):
https://www.googleapis.com/calendar/v3/calendars/{id}
Quelques affirmations:
L'en-tête Autoriser est correctement défini avec un jeton d'accès valide (le jeton fonctionne correctement pour l'API Analytics)
J'ai défini la portée suivante pour oauth2, qui s'affiche correctement:
https://www.googleapis.com/auth/calendar
Le jeton ne semble pas avoir expiré; cela fonctionne pour l'API Analytics.
{ "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
Pour résoudre ce problème, j'ai révoqué l'accès à l'application à l'adresse https://accounts.google.com/IssuedAuthSubTokens et j'ai réessayé, après quoi j'ai pu accéder correctement à l'API.
Malgré la portée de la liste et la portée apparaissant sur la page de subvention OAuth2 de Google, la portée supplémentaire n'a pas été accordée.
Je vérifierais que la portée est incluse - j'ai vu ce message exact quand j'ai demandé la mauvaise portée. Visiter https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx est un bon moyen de vérifier.
En supposant que cela soit vérifié, assurez-vous que l'utilisateur pour lequel vous avez le jeton d'accès est autorisé à afficher le calendrier auquel vous essayez d'accéder. Icône "Engrenages" -> "Paramètres" -> "Calendriers" -> (sélection du calendrier) -> "Partager ce calendrier"
Ajouter une portée pour calendar visiter l'API du calendrier et vérifier la configuration de l'accès
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly
Je devais inclure la portée de Google Plus pour disposer des autorisations suffisantes pour accéder à un calendrier:
Donc, ma scope
a fini par ressembler à ceci:
'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'
J'ai dû supprimer des autorisations sur mon application, puis revenir pour donner des autorisations dans https://security.google.com/settings/security/permissions
Je suis également confronté au même problème lors de l'ajout ou de la modification d'un événement. Et après quelques recherches sur Google, j’ai trouvé qu’une portée vous donnerait toute la permission -
https://www.googleapis.com/auth/calendar
J'ai eu le même problème pendant que j'essayais d'ajouter un événement dans mon agenda Google. Comment j'ai finalement résolu ça:
Ensuite, il ouvre votre navigateur et Google demande votre autorisation pour gérer votre calendrier et créer un nouveau "credentials.json" dans votre répertoire.