1

Я следую этому руководству Using OAuth 2.0 for Server to Server Applications. Я пытаюсь подключиться к API Gmail, используя учетную запись службы.Приложение сервера API Gmail для сервера (ошибка ошибочного запроса)

код я в конечном итоге выглядит так:

from oauth2client.service_account import ServiceAccountCredentials 
from httplib2 import Http 
from apiclient.discovery import build 
import json 

scopes = ['https://www.googleapis.com/auth/gmail.readonly'] 

credentials = ServiceAccountCredentials.from_json_keyfile_name('******.json', scopes) 

http_auth = credentials.authorize(Http()) 
service = build('gmail', 'v1', http=http_auth) 
request = service.users().messages().list(userId='me') 
response = request.execute() 

print json.dumps(response, sort_keys=True, indent=2) 

Однако, когда я запускаю этот код, я получаю следующее сообщение об ошибке:

googleapiclient.errors.HttpError:https://www.googleapis.com/gmail/v1/users/me/messages?alt=json returned "Bad Request">

Может кто-то помочь мне понять, где эта ошибка идет от?

ответ

0

Подумайте об учетной записи службы в качестве фиктивного пользователя. У этого аккаунта Google Диска есть учетная запись календаря Google. В моем распоряжении нет учетной записи Gmail.

Обычно, когда вы запрашиваете данные, используя учетную запись службы, вы должны предоставить доступ учетной записи службы к этим данным вручную. В случае с Google Drive вы можете открыть папку с учетной записью службы, позволяющую ей получить доступ к приводу Google. (вы также можете загрузить его на учетную запись своего накопителя, но это выходит за рамки этого вопроса)

Невозможно предоставить другому пользователю доступ к вашей учетной записи Gmail, поэтому нет возможности использовать учетную запись службы с обычным пользователем Gmail Счет.

Примечание. Если это не обычная учетная запись пользователя Gmail и на самом деле она основана на доменах Google, вы можете предоставить учетную запись службы всем электронным письмам других пользователей домена через раздел администратора.

Другой мудрый вам нужно изучить Oauth2 для доступа к gmail.

Смежные вопросы