2011-07-02 1 views
3

je tente de se connecter à l'API Google et il retourne: failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized J'ai demandé pour jeton d'accès et il m'a retourné xxx, après que je me connecte à l'API Google en suivant le code PHP:Demander utilisateur email de Google Api retourne sans autorisation 401 erreur

$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); 

Où est l'erreur ai-je mal écrit les en-têtes, ou quelque chose d'autre? Mise à jour: $ access_token est une valeur que j'ai obtenue dans json en la demandant.

+0

Que contient '$ access_token'? – hakre

+0

[Exemple complet OAuth] (http://tools.ietf.org/html/rfc5849#section-1.2), [Exemples PHP Oauth PHP API] (http://stackoverflow.com/questions/2084087/oauth-with- php-for-google-api) – hakre

Répondre

0
  • Vous n'avez pas besoin de l'en-tête du type de contenu pour une requête GET.
  • Vous devez interroger cette URL pour obtenir les informations de l'utilisateur: https://www.googleapis.com/oauth2/v2/userinfo
  • Assurez-vous que la valeur $access_token contient un jeton d'accès autorisé correctement, pour que vous avez besoin de votre utilisateur de passer par un flux OAuth 2.0.

Tout cela est tout documenté là: https://developers.google.com/accounts/docs/OAuth2Login

0

Vérifiez comment le faire en php, mais lorsque vous vous connectez à votre client de Google, vous devez définir le paramètre RequestPermission afin que vous puissiez obtenir des informations du profil de l'utilisateur

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

Questions connexes