2013-05-11 8 views
7

sto testando ottenere informazioni dell'utente da google token di accessoCome faccio ad avere il profilo dell'utente utilizzando Google token di accesso

http://www.mawk3y.net/glogin

dopo aver fatto clic pulsante Accedi vengo reindirizzato al

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=access_token_here

E ottenere alcuni dati JSON come questo

{ 
"issued_to": "my client id.apps.googleusercontent.com", 
"audience": "my client id.apps.googleusercontent.com", 
"user_id": "user id here", 
"scope": "https://www.googleapis.com/auth/plus.login", 
"expires_in": 3596, 
"access_type": "online" 
} 

ora ho bisogno di sapere come estrarre il nome utente, indirizzo e e-mail di qualsiasi aiuto per favore?

grazie in anticipo

risposta

3

È necessario utilizzare il token di accesso (si ottiene nella URL di reindirizzamento) per accedere a persone API di Google. Controlla le specifiche here.

È possibile trovare Google's OAuth2 playground piuttosto utile per avere un'idea di come utilizzare i token di accesso per accedere alle API di Google.

Buona fortuna!

+1

ottengo questo errore { "errore": { "errori": "il messaggio" "dailyLimitExceededUnreg",:: [{ "dominio": "usageLimits", "ragione" "Limite giornaliero per non autenticato Usa superato L'uso continuato richiede l'iscrizione. "," ExtendedHelp ":" https://code.google.com/apis/console "}]," codice ": 403," messaggio ":" Limite giornaliero per l'utilizzo non autenticato superato. L'utilizzo continuato richiede l'iscrizione. "}} quando creo un http, arriva a questo URL $ response = file_get_contents (" https://www.googleapis.com/plus/v1/people/me "); echo $ response; –

+0

e quando uso questo codice $ response = file_get_contents ("https://www.googleapis.com/plus/v1/people/MY ID UTENTE QUI? Fields = birthday% 2CcurrentLocation% 2CdisplayName% 2Cemails% 2Cgender% 2Cname & key = { MY API KEY HERE} "); echo $ response; ottengo questo errore {" error ": {" errors ": [{" domain ":" usageLimits "," reason ":" keyInvalid "," message " : "Richiesta errata"}], "codice": 400, "messaggio": "Richiesta errata"}} e ho appena copiato e incollato la mia chiave API aggiornata, quindi sono sicuro che sia attivo –

0

Controllare this. C'è ad esempio con la demo

Snippet di codice:

$accountObj = call_api($_SESSION['accessToken'],"https://www.googleapis.com/oauth2/v1/userinfo"); 

call_api chiama l'API e ottiene i dati:

function call_api($accessToken,$url){ 
    $curl = curl_init($url); 

    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $curlheader[0] = "Authorization: Bearer " . $accessToken; 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $curlheader); 

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

    $responseObj = json_decode($json_response); 

    return $responseObj;  
} 

Dall'oggetto conto, il nome si può accedere:

$your_name = $accountObj->name; 
+0

nuovo utenteInfo url è https://www.googleapis.com/ userinfo/v2/me – Palani

1

È possibile utilizzare l'avvio rapido e vedere l'esempio qui: sample
Ed ecco una descrizione di People:get

10

Provate questo:

var url = 'https://www.googleapis.com/plus/v1/people/me?access_token={access_token}'; 

    $.ajax({ 
    type: 'GET', 
    url: url, 
    async: false, 
    success: function(userInfo) { 
     //info about user 
     console.log(userInfo); 
     console.log('test'); 
    }, 
    error: function(e) { 
     console.log('error'); 

    } 
    }); 
+0

ottimo! ha funzionato per me .. –

+0

Grazie, ha funzionato – Jigar

3

È possibile verificare il token di autenticazione ricevuto dopo che Google signin sul tuo server utilizzando questa API

Richiesta

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={accces_token} 

Response

{ 

    "email_verified": "true", 
    "email": "[email protected]", 
    "name": "abhinav srivastava", 
    "picture": "https://lh3.googleusercontent.com/-xgD_zFj1EgY/AAAAAAAAAAI/AAAAAAAACZ0/fnecSQ03o0Y/s96-c/photo.jpg", 
    "given_name": "abhinav", 
    "family_name": "srivastava", 
    "locale": "en", 
    ... 
    ... 
} 

source

1

Si tratta di un semplice codice nodejs lato server.

var express = require('express'); 
var appln = express(); 
var google = require('googleapis'); 
var plus = google.plus('v1'); 
var OAuth = google.auth.OAuth2; 
var oauth2client = new OAuth(YOUR_CLIENT_ID , YOUR_SECRET_ID , CALLBACK_REDIRECT_URI); 

appln.get("/tokens" , function(req , res) { 
     var code = req.query.code; 
     oauth2client.getToken(code , function(err , tokens){ 
         if(err){ 
          console.log(err); 
          res.send(err); 
          return; 
          } 
       oauth2client.setCredentials(tokens); 
       actoken = tokens.access_token; 
       reftoken = tokens.refresh_token; 

     plus.people.get({ 
        userId: 'me', 
        auth: oauth2client 
        }, function (err, response) { 
       // handle err and response 
       var name = ""+response.displayName; 
       var id = ""+response.id; 
       var age = ""+response.ageRange.min; 
       if(err) console.log(err); 
       console.log("Name : ", name," ",id,"",age);  
       res.send(response); 

      }); 




     }); 
    });      
Problemi correlati