2013-06-02 61 views
2

我正在使用Google+登錄以檢索用戶的基本個人資料信息(姓名,網址,位置,個人資料圖片)。但我也想檢索用戶朋友的用戶標識,以便我可以給他/她更好的建議,讓用戶知道我的網站上的用戶。如何使用Google+ API獲取好友列表OAuth 2.0

$app_access_token = GetCH(); 
function GetCH(){ 
$ch = curl_init(); 
$pieces = explode(",", $_SESSION['access_token']); $piece = explode(":", $pieces[0]); 
$token = str_replace('"',"",$piece[1]); 
$url = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=".$token; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETU`enter code here`RNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
if(substr($url,0,8)=='https://'){ 
    curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_ANY); 
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 
} 
$sendCH = curl_exec($ch); 
curl_close($ch); 
return $sendCH; 
}; 

if ($client->getAccessToken()){ 
    $me = $plus->people->get('me'); 
    $user_id = filter_var($me['id'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); 
    $url = filter_var($me['url'], FILTER_VALIDATE_URL); 
    $img = filter_var($me['image']['url'], FILTER_VALIDATE_URL); 
    $name = filter_var($me['displayName'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH); 

    // The access token may have been updated lazily. 
    $_SESSION['access_token'] = $client->getAccessToken(); 
} else { 
    $authUrl = $client->createAuthUrl(); 

}

更多信息:https://developers.google.com/apis-explorer/#p/plus/v1/ 但我無法弄清楚如何獲取好友列表從他們的API數組

由於提前

回答

2

首先,您應確保您使用的是https://www.googleapis.com/auth/plus.login OAuth2範圍,以確保它們允許您訪問部分或全部朋友列表。您希望使用people.list API訪問點作爲記錄here並在this page上進一步詳細說明。雖然他們沒有提供PHP代碼示例,但我認爲您可以使用$ plus-> people->列表進行呼叫並獲取所需的信息。

+1

我添加了OAuth2作爲https://www.googleapis.com/auth/plus.login。但問題$ plus-> people-> list('me');是PHP解釋 - >列表()作爲PHP內置列表功能,並生成服務器錯誤,http://php.net/manual/en/function.list.php。在尋求權限時顯示「此應用程序想知道您的姓名,基本信息以及您在Google+上連接的人員列表「。但無法通過PHP list()函數進行調用來檢索信息。 –

3

您需要使用:$plus->people->listPeople,您可以在PHP quick start應用程序中找到使用示例。

相關問題