2016-08-12 2 views
1

Под консоли [email protected] в консоли API я создал проект, и я успешно использую учетную запись службы для служб Analytics API и Search Console API. Я теперь позволил Gmail V1 API и побежал этот код:API Gmail с учетной записью службы

gmail_scopes = [ 
    "https://mail.google.com/", 
    "https://www.googleapis.com/auth/gmail.compose", 
    "https://www.googleapis.com/auth/gmail.readonly", 
    "https://www.googleapis.com/auth/gmail.send", 
    "https://www.googleapis.com/auth/gmail.readonly" 
] 
gmail = Google::Apis::GmailV1::GmailService.new 
gmail.authorization = Google::Auth.get_application_default(gmail_scopes) 

Это тот же самый код (с различными областями, конечно), что я использую, чтобы санкционировать Analytics и поиск консоли API.

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

gmail.get_user_profile("[email protected]") 

Некоторой прибегая к помощи говорит мне, что это потому, что API пытается получить доступ к несуществующему почтовому ящику для ServiceAccount адреса электронной почты, и что в initiatlization Мне нужно включить [email protected]l.com, чтобы служба API использовала этот почтовый ящик.

Как это сделать?

Я попробовал следующее «...» всегда является адрес электронной почты

gmail.authorization = Google::Auth.get_application_default(gmail_scopes, username: '...') 
gmail.authorization = Google::Auth.get_application_default(gmail_scopes, {username: '...'}) 
gmail.authorization.username = '...' 

ответ

1

Обслуживания счетов не может получить доступ к @ gmail.com почтовых ящиков. Вам необходимо использовать UserAuthorizer OAuth2. См. Пример Gmail API Ruby Quickstart guide.

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