2017-01-09 8 views
1

API呼び出しのトークンを取得中に問題が発生しました。ここに私のコードですPHPカールのGmail APIアクセストークン

$authUrl = "https://accounts.google.com/o/oauth2/token"; 

$curl = curl_init(); 

curl_setopt($curl, CURLOPT_URL, $authUrl); 
curl_setopt($curl, CURLOPT_POST, TRUE); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
    'code' => $code, 
    'client_id' => CLIENT_ID, 
    'client_secret' => CLIENT_SECRET, 
    'redirect_uri' => $redirectURL, 
    'grant_type' => 'authorization_code' 
)); 

$http_data = curl_exec($curl); 
curl_close($curl); 

var_dump($http_data); 

$ http_dataは無効な要求を言っています。

私の仕事は私のGmailアカウントのすべての電子メールを取得することです、私はアクセストークンが必要だと思います。お知らせ下さい。

Thanx in Advance。

+0

curlを使用して[OAuth 2.0 phpで可能な複製](0120-13-0114)。 – DaImTo

+0

はまだinvalid_requestエラーが発生しています。私のコードに何か問題があります。 – Arpit

答えて

0

まず、すべてのパラメータをHTTP GET文字列の一部として追加するように見えます。これは、HTTP POSTコールです。また、あなたは認証フローの最初の部分から得たコードを含むのを忘れているようです。

これは認証コードで、リフレッシュを要求するために使用されます。 トークン。 htmlの本文には、ページのタイトルと同様に、 のようにユーザに表示されます。リフレッシュトークンを取得するには、 認証コードをGoogleに送り返します。注:これはHTTP投稿です HTTP Getとなるブラウザに置くだけです。注:= authorization_code grant_type

https://accounts.google.com/o/oauth2/token 
code={Your code from the first part of flow}&client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code 

注意あなたがあなたのためにこれのすべてを処理するGoogle APIs PHP Client libraryを使用して検討していますか?

コードは私のGoogle 3 legged Oauth2 flowの記事からリッピングされました。

+0

$ authUrl = "https://accounts.google.com/o/oauth2/token"; $ curl = curl_init(); curl_setopt_array($カール、アレイ( CURLOPT_POST => trueを、 CURLOPT_POSTFIELDS =>アレイ( 'コード' => $コード、 'CLIENT_ID' => CLIENT_ID、 'client_secret' => CLIENT_SECRET、 'REDIRECT_URI' = > getRedirectUri()、 'grant_type' => 'authorization_code' )、 CURLOPT_URL => $ authUrl、 CURLOPT_SSL_VERIFYPEER => falseを、 CURLOPT_RETURNTRANSFER =>真 )); $ http_data = curl_exec($ curl); curl_close($ curl); – Arpit

+0

上記のコードを使用してトークンを取得する。しかし、空白の応答を得る。ここでは$ codeは4/EfvRZ7kEGBOK7TXfuYba4mDAdRUakUbd5is4IdEYJ8Qです。#コードに間違いがないかアドバイスしてください。コードを書式設定できません。 – Arpit

+0

あなたの質問を編集し、必要な変更を加えてください – DaImTo