2015-09-04 23 views
3

我正在從事PHP項目。我必須得到用戶的ID,全名,名字,性別和電子郵件。我得到了用戶的ID。所以,很顯然,在PHP的facebook-sdk或Facebook庫中沒有任何問題。但我無法得到其他領域。所以,我的代碼中有一些錯誤。但我找不到錯誤的代碼。如果有人知道答案,請解釋或建議我從哪裏我可以從開始理解鏈接。謝謝。這是我的代碼。這是我的代碼。Facebook Graph API(如何獲得用戶性別?)

$request = new FacebookRequest($session, 'GET', '/me'); 
$response = $request->execute(); 

// get response 
$graphObject = $response->getGraphObject(); 

$fbid = $graphObject->getProperty('id');   // To Get Facebook ID 

echo $fbid; //working as I'm getting facebook ID 

$filenameIn = 'https://graph.facebook.com/' . $fbid . '/fields=gender'; 
$gender = file_get_contents($filenameIn); 
echo $gender; //I can not get this. 
+0

提示:你應該要求獲得信息的權限.. – Kamal

+0

@Kamal ..感謝名單。因爲我也有可能是在這裏我錯了同樣的疑問。但我不知道如何請求權限。你能用例子來解釋還是建議我一些鏈接到概述。 –

+1

性別''不需要額外的權限,它包含在公共配置文件中。但是您在這裏以錯誤的方式詢問字段 - 「fields」是一個_query string_參數,但您已將其作爲URL的_path_組成部分的一部分。而且你不需要在這裏提出一個額外的請求來獲得id - 只是請求'/ me',並直接指定你想要的所有字段。 – CBroe

回答

4

CBroe是對的。我犯了這個錯誤。當我按照CBroe的建議更改我的代碼時,我解決了問題。這是正確的代碼。

$request = new FacebookRequest($session, 'GET', '/me?fields=id,gender'); 
$response = $request->execute(); 

// get response 
$graphObject = $response->getGraphObject(); 

$fbid = $graphObject->getProperty('id');   // To Get Facebook ID 
$fbgender = $graphObject->getProperty('gender'); // To Get Facebook gender 

echo $fbid; //working as I'm getting facebook ID 
echo $fbgender;//working as I'm getting facebook gender 
+0

你可以通過下面的方法進一步減少這段代碼:'$ graphObject = $ request-> execute() - > getGraphObject();' –

+0

這正是我所期待的,謝謝 – Michal

相關問題