在运行于Google App Engine的django网站上,我收到500台服务器错误。当我查看Google App Engine日志时,看到以下错误:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission">
当我强制刷新浏览器时,此错误消失了。然后一段时间后它会弹出来。发生在移动设备(firefox,safari),笔记本电脑(firefox,chrome)上。
更新:
在Django settings.py中,我有以下代码。它的最后一行生成错误:
pickle_path = 'token.pickle' # path to token.pickle
with open(pickle_path, 'rb') as token:
creds = pickle.load(token)
SERVICE = build('gmail', 'v1', credentials=creds) # ERROR LINE
当我在本地运行django服务器时:出现以下错误:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission">
当我从终端重新启动cloud sql连接时-错误消失了。直到几天前,这种情况才发生过。
答案 0 :(得分:3)
这是一种解决方法:
gmail-api.json
)build_from_document
从这个json文件构建之前
from googleapiclient.discovery import build
gmail_creds = get_service_account_creds()
gmail_service = build('gmail', 'v1', credentials=gmail_creds)
之后
from googleapiclient.discovery import build_from_document
discovery_doc = load_json('config/gmail-api.json')
gmail_creds = get_service_account_creds()
gmail_service = build_from_document(discovery_doc, credentials=gmail_creds)
似乎它已成为Google的P0,因此希望很快会得到解决。
答案 1 :(得分:1)
我也开始面对这个问题。我已经使用Google API一年多了,但是突然出现此错误HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission
。但是,有几次我没有看到此错误,并且API调用成功。我希望在Gmail API服务器上出现此错误。
更新: 我可以毫无问题地调用Google API。看来问题已在Google端解决。
答案 2 :(得分:0)
我与GAM ADV-X遇到相同的问题。我以为这是我的计算机上的问题,所以我在2台不同的计算机上尝试过并遇到相同的错误。确实,周末以来,Gmail API似乎发生了一些变化。将向Google提交票证。