2011-07-02 9 views
3

Google APIに接続しようとしました: failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized アクセストークンを要求してxxxを返しました。Google Apiからのユーザーメールをリクエストすると、不正な401エラーが返されます

$opts = array('http' => 
     array(
     'method' => 'GET', 
     'header' => "Authorization: OAuth $access_token\r\nContent-Type: application/json\r\n", 
     ) 
    ); 
    $context = stream_context_create($opts); 
    $result = file_get_contents('https://www.googleapis.com/userinfo/email?alt=json',false,$context); 

私は間違ってヘッダーなどを書きましたか? 更新:$ access_tokenは私がjsonにリクエストして得た値です。

+0

'$ access_token'には何がありますか? – hakre

+0

[完全なOAuthの例](http://tools.ietf.org/html/rfc5849#section-1.2)、[PHP Google API Oauthの例](http://stackoverflow.com/questions/2084087/oauth-with- php-for-google-api) – hakre

答えて

0
  • GETリクエストにはコンテンツタイプヘッダーは必要ありません。
  • あなたはユーザー情報を取得するには、このURLを照会する必要があります:
  • https://www.googleapis.com/oauth2/v2/userinfo$access_token値が正しく認可アクセストークンが含まれていることを確認し、そのためにあなたがOAuth 2.0のフローを通過するユーザーを必要としています。

このすべては、すべてそこに記載されています:https://developers.google.com/accounts/docs/OAuth2Login

0

は、PHPでそれを行う方法を確認しますが、Googleにクライアントのログを記録するときに、ユーザーのプロファイル

から情報を得ることができるので、あなたがRequestPermissionパラメータを設定する必要があります

requestPermissions: 'https://www.googleapis.com/auth/userinfo.profile'

関連する問題