googleapiclient.errors.HttpError: HttpError 500 «ошибка сервера» при запросе https://www.googleapis.com/gmail/v1/users/me/watch - PullRequest
0 голосов
/ 26 октября 2018

При запуске следующего минимального кода для выполнения метода watch () API GMail.Возникла «ошибка бэкенда».Это верно как при работе на клиентском компьютере, так и при запуске непосредственно в Google Cloud в качестве функции облака.

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = ["https://mail.google.com/"]
SERVICE_ACCOUNT_FILE = '<JSON KEY FILE REMOVED>'
TARGET='<GSUITE DOMAIN USER EMAIL ADDRESS>'
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
credentials_delegated = credentials.with_subject(TARGET)
service = googleapiclient.discovery.build('gmail', 'v1', credentials=credentials_delegated)
val = { 'topicName': '<TOPIC NAME COPIED FROM GCLOUD PUB/SUB>' }
watch_resp = service.users().watch(userId='me', body=val).execute()
print(watch_resp)

Другие API-интерфейсы GMail, такие как service.users().getProfile(userId='me').execute(), работают как положено.Эта ошибка возникает после проверки того, что учетная запись службы и делегированный пользователь имеют роль издателя pub / sub и что имя темы правильное и уже создано.Точный вывод ошибки следующий:

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    watch_resp = service.users().watch(userId='me', body=val).execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/googleapiclient/http.py", line 842, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 500 when requesting https://www.googleapis.com/gmail/v1/users/me/watch?alt=json returned "Backend Error">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...