2

Google API を使用して電子メールを読み取ろうとしていますが、良い結果が得られないことが繰り返しあります。バックグラウンドで定期的に実行されるサーバー -> サーバー アカウントのはずですが、接続できません。コードは基本的なものです:

GoogleCredential credential;
using (var stream = new FileStream("Content/service_credential.json", FileMode.Open, 
                                   FileAccess.Read))
{
    credential = GoogleCredential.FromStream(stream);
    credential = credential.CreateScoped(new[] { GmailService.Scope.GmailModify });
}

var service = new GmailService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "try-apis",
});


ListLabelsResponse response = service.Users.Labels.List("me").Execute();
foreach (Label label in response.Labels.OrderBy(p => p.Name))
{
    Console.WriteLine(label.Id + " - " + label.Name);
}

Console.Read();

エラー:

Additional information: Google.Apis.Requests.RequestError

Bad Request [400]

Errors [

    Message[Bad Request] Location[ - ] Reason[failedPrecondition] Domain[global]

]

IAM 設定では、使用しているアカウントに完全なアクセス許可があります。

ここに画像の説明を入力

アカウントには完全な権限があります。

ここに画像の説明を入力

同様に、より完全な権限:

ここに画像の説明を入力

私は何が欠けていますか?受信ボックスに接続するだけで意味のある代表的な .Net リクエストが見つかりません。

4

3 に答える 3

0

IAM でドメイン全体の委任を許可する方法を見たことがありません。

通常、開発者 ID は、これらのドキュメントで説明されているように、ドメイン CPanel でホワイトリストに登録されています。

(「その後、Google Apps ドメインの管理者は次の手順を完了する必要があります」という段落。)

于 2016-09-01T15:54:45.467 に答える