我正在对以下网址发送请求(将{id}替换为网络界面中的ID):
https://www.googleapis.com/calendar/v3/calendars/{id}
一些断言:
使用有效的访问令牌正确设置了Authorize标头(该令牌适用于Analytics API)
我为oauth2设置了以下范围,它正确显示:
https://www.googleapis.com/auth/calendar
令牌似乎没有过期;它适用于Analytics API。
{ "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
答案 0 :(得分:21)
要解决此问题,我撤消了对https://accounts.google.com/IssuedAuthSubTokens处应用的访问权限,并在之后重试,我能够正确访问API。
尽管列表中包含范围,并且范围显示在Google的OAuth2授权页面上,但未授予其他范围。
答案 1 :(得分:7)
我会仔细检查范围是否包括在内 - 当我请求错误的范围时,我已经看到了确切的消息。访问https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx是一种验证的好方法。
假设检出,请确保您拥有访问令牌的用户有权查看您尝试访问的日历。 “Gears”图标 - > “设置” - > “日历” - > (选择日历) - > “分享这个日历”
答案 2 :(得分:6)
添加日历visit calendar api的范围并检查访问配置
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly
答案 3 :(得分:2)
我必须包含Google Plus范围才能获得访问日历的足够权限:
所以我的scope
最终看起来像这样:
'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'
答案 4 :(得分:1)
在“快速入门”中进行示例时,我可以从日历中获取事件列表。
但是我正在使用SCOPE ='https://www.googleapis.com/auth/calendar.readonly'。
当我执行代码时,将生成一个链接,在该链接中,我必须创建一个密钥以允许从Calendar中列出事件。
因此,当我尝试插入事件时,出现此错误INSUFICIENT PERMISSION。
解决此问题的方法:
1)我将范围更改为https://www.googleapis.com/auth/calendar
2)删除文件token.json
3)再次执行代码,我必须创建一个新的权限密钥,现在已获得插入新事件的权限。
答案 5 :(得分:0)
我必须删除我的应用程序的权限,然后返回以在https://security.google.com/settings/security/permissions
中授予权限答案 6 :(得分:0)
尝试在Google日历中添加活动时遇到了同样的问题。 我最终如何解决这个问题:
然后,它打开您的浏览器,并且google询问您的许可来管理您的日历并在您的资源库中创建一个新的'credentials.json'。
答案 7 :(得分:0)
添加或编辑事件时,我也面临同样的问题。经过一番谷歌搜索后,我发现,一个范围将授予您所有权限-
https://www.googleapis.com/auth/calendar