2

サービス アカウントを使用してユーザーの下書きを作成しようとしています。そのため、開発者コンソールでサービス アカウントを作成し、gmail 作成 API にアクセスする権限を付与しました。この例を見つけました: https://google-developers.appspot.com/api-client-library/dotnet/guide/aaa_oauth?hl=lv#service_accountそして、次のように gmail 作成 API を使用するように変更しました:

var certificate = new X509Certificate2(_privateKey2, "notasecret",X509KeyStorageFlags.Exportable);

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(_emailAddressService)
        {
            Scopes = new[] {GmailService.Scope.GmailCompose}
        }.FromCertificate(certificate));

// Create the service.
var service = new GmailService(new BaseClientService.Initializer
{
    HttpClientInitializer = credential,
    ApplicationName = "Plus API Sample",
});

var draft = new Draft();
draft.Message = new Message();
draft.Message.Payload = new MessagePart();
draft.Message.Payload.Body = new MessagePartBody();
draft.Message.Payload.Body.Data = "";

draft = service.Users.Drafts.Create(draft, "someuser@domain.com").Execute();

これにより、空のドラフトが作成されます。https://developers.google.com/gmail/api/v1/reference/users/drafts/createの API エクスプローラーでテストしました。ただし、返されるのはバックエンド エラーだけで、有用な情報はありません。

Google.Apis.Requests.RequestError
Backend Error [500]
Errors [
    Message[Backend Error] Location[ - ] Reason[backendError] Domain[global]
]

Fiddler を使用して送信したリクエストを確認したところ、次のようになります: {"message":{"payload":{"body":{"data":""}}}}、リクエストとまったく同じAPIエクスプローラーで行いました。ここで何が間違っていますか?どんな助けでも大歓迎です。

更新:私も試しました

service.Users.Drafts.List("user@2domain.com").Execute();

messages = service.Users.Messages.List("user@doamin.com").Execute();

同じエラーメッセージが表示されます。どの API にもアクセスできないように見えますか?

4

0 に答える 0