2016-11-09 3 views
-1

私はGmailのAPIからの添付ファイルを取得しようとしています -無効な添付ファイルトークンGmailのAPI

https://developers.google.com/gmail/api/v1/reference/users/messages/attachments/get#try-it

トークンは、メインのユーザートークンである - 私はこのトークン、IDおよびメッセージIDを含む電子メールを読み、正しいことができます。

デコード添付IDが必要ですか?その$p->getBody()['attachmentId']

にattachmentIDがあるロークANGjdJ9jgabAPGnlI7oCAAEvz_Jo-xNYh4-kf9NoCyn-aRPPlf8KuRTsbolmQH0bdDl4Qh3UdfWCBBl8Roaly-rxqRoxTotvIEmls8zqCkFasvFcC-wvQ_6Qun2RM8f8SCDvVpmwguVf​​6fvWfkl1uu5qdu3iR-GzpyU6zLsV0wcwVuiTtPNh8XjAuqKvFk7PaVgDiNW_Lwk_DDEWP8UxfTqw2afanJMNY5GrqPLhga6FmarDIh5AiM67tY6x5Vl

は、私はまた、オンラインテストでこれを試したが、エラーがある場合
は私が得ます。
添付ファイルトークンとは何ですか?他のトークン?

enter image description here

私はトークンここhttps://www.googleapis.com/oauth2/v1/tokeninfo?access_token= テストし、それが有効な

"scope": " https://mail.google.com/ https://www.googleapis.com/auth/drive ", 
"expires_in": 3518, 
"verified_email": true, 
"access_type": "offline" 

でアップデート1

この例

$token = $client->getAccessToken(); 
$authObj = json_decode($token); 
if(isset($authObj->refresh_token)) { 
save_refresh_token($authObj->refresh_token); 
} 


$token = $client->getAccessToken(); 

アレイは

をJSONではありません
"access_token" => "ya29.Ci-XA8H0Qq33gA00E92Nx9CQufeG3U4NvyHUFbUUzyXcOEp50FbuK-z1hic8aNbxZg" 
    "token_type" => "Bearer" 
    "expires_in" => 3600 
    "id_token" => .... 
"created" => 1479227459 

私はrefresh_tokenを取得can`t - 私は、私はトークン持っているが、なぜrefresh_tokenなしauth_code

$client->setApprovalPrompt('force'); 
      $client->setAccessType ("offline"); 

      $client->authenticate($tokenCode); 

      $token = $client->getAccessToken(); 

からaccess_tokenは取得?

答えて

-1

Webサーバーアプリケーションに標準OAuth 2.0を使用する必要があります。あなたのアプリは短期間のアクセストークンを受け取って、それらのリソースにアクセスしてトークンをリフレッシュし、長期アクセスを許可し、oauth2認証にオフラインフラグを追加するようにします。トークンは、3600秒または1時間で期限切れとなり、期限切れになるのは正常です。したがって、新しい作業トークンを取得するにはリフレッシュトークンを使用する必要があります。ここで

はあなたが必要とする手順は次のとおりです。

$token = $client->getAccessToken(); 
$authObj = json_decode($token); 
if(isset($authObj->refresh_token)) { 
save_refresh_token($authObj->refresh_token); 
} 

このrefresh_tokenを保存することが重要である、あなたは

$client->refreshToken($your_saved_refresh_token); 
And then set your new access token to the session: 

$_SESSION['access_token'] = $client->getAccessToken(); 

でそれを更新することができ、私はいくつかの研究とすることができたSOチケットをしましたoauthウェブの流れを理解するのに役立ちます:How to refresh token with Google API client?

関連する問題