如何解决HttpError 403"权限不足"在谷歌calander API?

时间:2017-03-23 13:15:13

标签: python google-api calendar google-calendar-api google-oauth

我想使用python创建一个带谷歌日历API的活动。我使用了这里的示例代码 https://developers.google.com/google-apps/calendar/v3/reference/events/insert

我认为GMT会成为一个问题,但后来我也改变了GMT,就像使用谷歌日历设置的代码一样。但仍然有同样的错误。完整代码如下所示

Traceback (most recent call last):
  File "D:/cs/projects/googleApi/quickstart.py", line 106, in <module>
    main()
  File "D:/cs/projects/googleApi/quickstart.py", line 102, in main
    event = service.events().insert(calendarId='primary', body=event).execute()
  File "D:\cs\anaconda\lib\site-packages\oauth2client\_helpers.py", line 133, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "D:\cs\anaconda\lib\site-packages\googleapiclient\http.py", line 840, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/events?alt=json returned "Insufficient Permission">

错误是:

FirstName SecondName 00:01

FirstName SecondName 00:00

FirstName SecondName 00:02

ThirdName FourthName 00:01

ThirdName FourthName 00:02

ThirdName FourthName 00:00

我是谷歌API的新手。我发现了一些类似的问题,但它们用于gmail或其他服务,但没有日历。什么可能是错误的解决方案。可以请任何人帮忙吗?

4 个答案:

答案 0 :(得分:3)

您已通过以下scope

进行了身份验证
  

&#39; https://www.googleapis.com/auth/calendar.readonly&#39;

此范围允许只读,只有您无权插入使用此权限。

  

https://www.googleapis.com/auth/calendar

答案 1 :(得分:1)

这里的实际解决方案是使用:

SCOPES = 'https://www.googleapis.com/auth/calendar'

然后发表评论:

# If modifying these scopes, delete your previously saved credentials
# at ~/.credentials/calendar-python-quickstart.json

进入'〜/ .credentials /'并删除文件'calendar-python-quickstart.json'

答案 2 :(得分:-1)

我有同样的问题但解决了如下:

由于@DalmTo作为评论提及,您必须在将范围从client_secret.json更改为.credentials后删除https://www.googleapis.com/auth/calendar.readonly文件夹中的https://www.googleapis.com/auth/calendar文件。

答案 3 :(得分:-1)

请按照以下步骤操作,并确定已解决此问题。

  1. 从系统中删除token.pickle文件。
  2. 重新运行代码