Я пытаюсь создать службу Gmail, которая будет читать электронные письма пользователей, как только их ИТ-администратор аутентифицирует приложение на рынке приложений. Судя по документации, сервисные учетные записи подойдут, для чего я попробовал оба варианта:
scope = "https://www.googleapis.com/auth/gmail.readonly"
project_number = "c****io"
authorization_token, _ = app_identity.get_access_token(scope)
logging.info("Using token %s to represent identity %s",
authorization_token, app_identity.get_service_account_name())
#authorization_token = "OAuth code pasted from playground"
response = urlfetch.fetch(
"https://www.googleapis.com/gmail/v1/users/me/messages",
method=urlfetch.GET,
headers = {"Content-Type": "application/json",
"Authorization": "OAuth " + authorization_token})
и
credentials = AppAssertionCredentials(scope=scope)
http = credentials.authorize(httplib2.Http(memcache))
service = build(serviceName='gmail', version='v1', http=http)
listReply = gmail_service.users().messages().list(userId='me', q = '').execute()
Затем я запустил dev_appserver.py согласно Не удалось получить доступ к BigQuery с локального сервера разработки App Engine
Однако я получаю код ошибки HTTP 500 «Backend Error». Тот же код, но когда я вставляю access_token из игровой площадки OAuth, он работает нормально (HTTP 200). Я на своей локальной машине, если это имеет значение. Интересно, я что-то пропустил? Я пытаюсь найти все электронные письма для всех пользователей определенного домена, где их ИТ-администратор установил мое приложение Google Marketplace.
Спасибо за помощь!