メールボックスを見るには以下のコードがあります。見ての通り、lableIdsでは、新しいメッセージだけを聞きたいので、私は1つのラベル、INBOXしか持っていません。しかし、これを実行すると、30秒ごとに異なるmessageidで通知が受信されます。しかし、INBOXには何の変化もなく、新しいアイテムは追加/削除されませんでした。受信ボックスの受信メッセージのみを受信するように時計本体を設定するにはどうすればよいですか?Gmail API:受信トレイのラベルのみ
certificate= new X509Certificate2("file.p12"), "password",
X509KeyStorageFlags.Exportable);
credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceaccount)
{
User = username,//username being impersonated
Scopes = scopes
}.FromCertificate(certificate));
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();
サービスアカウントを使用しているようです。 Google Identity Platformの公式ドキュメント(https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority)で説明されているようにユーザーを偽装していますか? – Morfinismo
@Morfinismo偽装されているユーザーのIDに渡す場所を強調表示するコードを編集しました。私はサービスアカウントにドメイン全体の権限を与えました。 – jpo