メールボックスでwatch()を呼び出そうとしています。私はサービスのIAMアカウントを設定し、トピックと執筆を作成しました。私は自分のトピックとサブスクリプションに対してサービスアカウントに完全な(所有者)権利を与えました。 )(時計上で実行呼び出すときしかし、私はエラーを取得する:ここでGoogle API:Gmailサービスプッシュ通知(監視) - この操作を実行する権限がないユーザー
Google.Apis.Requests.RequestError Error sending test message to Cloud PubSub projects/projectid/topics/topicname : User not authorized to perform this action. [403] Errors [ Message[Error sending test message to Cloud PubSub projects/projectid/topics/topicname : User not authorized to perform this action.] Location[ - ] Reason[forbidden] Domain[global] ]
は、私は私のサービスを設定するために使用するコードです:
credential = new X509Certificate2("file.p12"), "password", X509KeyStorageFlags.Exportable);
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = applicationame,
});
WatchRequest body = new WatchRequest()
{
TopicName = "projects/projectid/topics/topicname",
LabelIds = new[] {"INBOX"}
string userId = "me";
UsersResource.WatchRequest watchRequest = service.Users.Watch(body, userId);
WatchResponse test = watchRequest.Execute();
マイサービスアカウントには、以下のすべてのスコープへのアクセスを持っています:
https://mail.google.com/
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.metadata
ここに何か不足していますか?
EDIT
は成功を、以下の範囲を追加しましたが、それでもない:https://www.googleapis.com/auth/pubsub
EDIT もなし成功し、次を追加しました:https://www.googleapis.com/auth/cloud-platform
私はGoogleドメインアカウントにアクセスできないので、テストすることはできません。しかし私は前にこの問題を見てきました。そのユーザーに許可されていないサービスアカウントのアクセス許可に戻ります。 – DaImTo
@DaImどのユーザーを参照していますか?これまでは、サービスアカウントの電子メールの許可をトピックに与えました。サービスアカウントがGmailアカウントによって作成されていても、サービスアカウントのメールに実際のGmailアカウントの権限が必要であることを意味しますか? – jpo