29

我正在向以下 URL 发出 get 请求(将 {id} 替换为 Web 界面中的 id):

https://www.googleapis.com/calendar/v3/calendars/{id}

几个断言:

  1. 使用有效的访问令牌正确设置了 Authorize 标头(该令牌适用于 Analytics API)

  2. 我为 oauth2 设置了以下范围,它可以正确显示:

    https://www.googleapis.com/auth/calendar
    
  3. 令牌似乎没有过期;它适用于 Analytics API。

    { "error": { "errors": [ { "domain": "global", "reason": "insufficientPermissions", "message": "Insufficient Permission" } ], "code": 403, "message": "Insufficient Permission" } }
    
4

8 回答 8

25

为了解决这个问题,我在https://accounts.google.com/IssuedAuthSubTokens撤销了对应用程序的访问权限,然后重试,我能够正确访问 API。

尽管列表中有范围,并且范围显示在 Google 的 OAuth2 授权页面上,但未授予额外的范围。

于 2013-06-06T20:39:19.400 回答
7

我会仔细检查包含的范围 - 当我请求错误的范围时,我已经看到了确切的消息。访问https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx是一个很好的验证方式。

假设签出,请确保您拥有访问令牌的用户有权查看您尝试访问的日历。“齿轮”图标->“设置”->“日历”->(选择日历)->“共享此日历”

于 2013-06-06T20:24:42.363 回答
6

添加日历访问日历 api的范围并检查访问配置

https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.readonly
于 2013-10-08T10:40:36.010 回答
2

为了获得足够的权限来访问日历,我必须包含 Google Plus 范围:

所以我scope最终看起来像这样:

'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly', 'https://www.googleapis.com/auth/plus.login'

于 2016-04-08T13:15:13.857 回答
2

当我在 QuickStart 中执行示例时,我可以从我的日历中获取事件列表。
但我使用的是 SCOPE=' https://www.googleapis.com/auth/calendar.readonly '。

当我执行代码时,会生成一个链接,我必须在其中创建一个密钥以获得列出日历中事件的权限。所以,当我尝试插入一个事件时,我遇到了这个错误 INSUFICIENT PERMISSION。

要解决这个问题:
1)我将SCOPE更改为https://www.googleapis.com/auth/calendar
2)删除文件token.json
3)再次执行代码,我必须创建一个新的权限密钥,现在有权插入新事件。

于 2020-01-08T02:55:11.360 回答
1

我不得不删除对我的应用程序的权限,然后在https://security.google.com/settings/security/permissions中授予权限

于 2016-06-24T20:19:40.160 回答
1

添加或编辑事件时我也面临同样的问题。经过一番谷歌搜索,我发现,一个范围会给你所有权限 -

https://www.googleapis.com/auth/calendar
于 2018-12-18T09:18:45.213 回答
0

当我试图在我的谷歌日历中添加一个事件时,我遇到了同样的问题。我最终是如何解决这个问题的:

  • 删除我的文件'credentials.json'
  • 启动一个 Python 程序,它看起来像 Google 的快速入门程序,用“SCOPES = ' https://www.googleapis.com/auth/calendar ' ”编写。这个程序是唯一对我有用的解决方案。启动我的 django 命令来调用我的实际工作对我不起作用。但这解决了我的权限问题。

然后,它会打开您的浏览器,谷歌会询问您是否允许管理您的日历并在您的目录中创建一个新的“credentials.json”。

于 2018-07-02T13:32:15.277 回答