2016-08-12 7 views
1

APIコンソールの[email protected]の下にプロジェクトを作成しました。Analytics APISearch Console APIサービスのサービスアカウントを正常に使用しています。私は今Gmail V1 APIを有効にしてこのコードを実行しました:サービスアカウントを使用したGmail API

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) 

これは私が解析し、検索コンソールAPIを認可するために使用します(もちろん、異なるスコープを持つ)同じコードです。

私はこれを実行すると、私はBAD REQUESTFailed Preconditionエラーが発生しますが:

gmail.get_user_profile("[email protected]") 

いくつかのグーグルでは、APIがserviceaccountの電子メールアドレスの存在しない受信トレイにアクセスしようとinitiatlizationでいることをされているため、つまり私に指示APIサービスがその受信トレイを使用するように、[email protected]を含める必要があります。

どうすればよいですか?

私は、次の試してみた「...」常に

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のメールボックスにアクセスすることはできません電子メールアドレスであること。 OAuth2 UserAuthorizerを使用する必要があります。例については、Gmail API Ruby Quickstart guideを参照してください。

関連する問題