

以下のページを参考に、Google
Appsのテナント内のユーザに対して、転送先メールアドレスの設定をしようと思っていますが、APIから応答がエラーとなってしまいます。  
developers.google.com/gmail/api/v1/reference/users/settings/forwardingAddresses

試したことは、以下の通りなのですが、誤っている手順や不足している手順がないか、ご教授いただけませんでしょうか。よろしくお願いいたします。

１．OAuthクライアントの作成

Google Developer ConsoleのAPI Managerにアクセスし、タイプが「サービスアカウント クライアント」となるOAuth 2.0
クライアントを作成。作成したクライアントには、「Google Apps のドメイン全体の委任を有効にする」のチェックを入れている。

２．権限の付与

「Google Apps管理画面  
->セキュリティ ->詳細設定  
->APIクライアントアクセスを管理」から、  
作成したクライアントに対して、「<https://mail.google.com/>」の権限を付与

３．アクセストークン取得

以下のページで公開されているPHPライブラリを使い、アクセストークンを取得しています。  
developers.google.com/api-client-library/php/start/installation

アクセストークンを取得するPHPコードは以下の通りです。

[code]

    <?php
    
    require_once realpath(dirname(__FILE__).'/google-api-php-client/src/Google/autoload.php');
    
    $client_email = 'platinum-pager-xxxxxx@appspot.gserviceaccount.com';
    $private_key = file_get_contents('MyProject.p12');
    
    $scopes = array("https://mail.google.com/");
    
    $credentials = new Google_Auth_AssertionCredentials(
        $client_email,
        $scopes,
        $private_key
    );
    
    $client = new Google_Client();
    
    $client->setAssertionCredentials($credentials);
    if ($client->getAuth()->isAccessTokenExpired()) {
      $client->getAuth()->refreshTokenWithAssertion();
    }
    
    var_dump($client->getAccessToken());
    
    ?>
    
[/code]

４．Gmail API実行

URL：[https://www.googleapis.com/gmail/v1/users/メールアドレス/settings/forwardingAddresses](https://www.googleapis.com/gmail/v1/users/%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9/settings/forwardingAddresses)  
メソッド：GET  
ヘッダ：  
Authorization: Bearer アクセストークン

→このリクエストに対する応答が、以下のエラー応答となります。

応答ステータス：400  
応答本文：

[code]

    {
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "failedPrecondition",
                "message": "Bad Request"
            }
        ],
        "code": 400,
        "message": "Bad Request"
    }
    
[/code]


CC BY-SA 3.0
2016-08-05T12:52:39.570
28087
2016-11-22T20:05:02.237
18397
question
gmail
サービスアカウントタイプのOAuthクライアントを利用したGmail APIの実行方法について


さらっと見て気づいた点ですが，，  
\- もし転送先アドレスを設定したいのならメソッドはPOSTではないでしょうか？  
\-
もう1点，エンドポイント(URL)が正しく設定されていないのではないでしょうか？下記の"メールアドレス"となっている部分は"userId"であるべきです。

[code]

    https://www.googleapis.com/gmail/v1/users/メールアドレス/settings/forwardingAddresses
    
[/code]

リファレンス :
<https://developers.google.com/gmail/api/v1/reference/users/settings/forwardingAddresses/create>


CC BY-SA 3.0
2016-11-22T20:05:02.237
30604
2016-11-22T20:05:02.237
19669
28087
answer