2012-02-03 205 views
2

而不是打印userinfo,下面的代码是打印由Google授予的访问令牌的详细信息。代码非常简单但我无法弄清楚这使用Google身份验证API和PHP

<?php 
$url = 'https://accounts.google.com/o/oauth2/token'; 
$fields = array(
     'code'=>urlencode($_GET['code']), 
     'client_id'=>urlencode('###########.apps.googleusercontent.com'), 
     'client_secret'=>urlencode('###########'), 
     'redirect_uri'=>urlencode('http://######odie.co.in/googlogin'), 
     'grant_type'=>urlencode('authorization_code'), 
        ); 


foreach($fields as $key=>$value) { 
    $fields_string .= $key.'='.$value.'&'; 
    } 
rtrim($fields_string,'&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 

//execute post 
$result = curl_exec($ch); 


//close connection 
curl_close($ch); 
$data = json_decode($result); 

print_r(file_get_contents(' https://www.googleapis.com/oauth2/v1/userinfo?access_token='.$data['access_token'])); 
?> 

回答

2

您需要添加CURLOPT_RETURNTRANSFER, true您curl_setopt的确切原因。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);