[英]Facebook SDK-PHP - Always returns 0 when calling getUser()
每當我調用getUser()
方法時,PHP Facebook-SDK都會為我返回0。 我正在尋找不使用JS的解決方案。 那是我到目前為止所擁有的。
$user = null;
$facebook = new Facebook(array(
'appId' => '140739xxxx46068',
'secret' => '46dff7362e86xxxxx06fe9050a86a22',
'cookie' => true,
));
// Get User ID
$login = $facebook->getLoginUrl(array("scope" => "publish_stream,manage_pages"));
$user = $facebook->getUser();
echo $facebook->getUser()."//".$facebook->getAccessToken();
if ($user <> '0' && $user <> '')
{
try {
//header("location:".$login);
}
catch (FacebookApiException $e)
{
echo $e->getType();
echo $e->getMessage();
}
想一想。 您要將loginURL
保存到$login
var中,然后嘗試檢索用戶數據。
那永遠都行不通。 您沒有提示用戶使用登錄URL,因此他未授予訪問權限。 用戶需要手動訪問URL並確認權限。 之后,您也許可以檢索用戶數據。
讓我們總結一下:
getUser()
要求) getUser()
為0),則告訴用戶訪問通過getLoginUrl()
獲得的URL。 redirect_uri
數組您在傳遞關鍵4.
你可以,因為我們正在檢查我們是否檢索用戶數據或提示用戶登錄重定向到同一個URI redirect_uri
到您的redirect_uri
您的邏輯缺陷是,您認為getLoginURL()
自動授予您對用戶數據的訪問權限。 但這不是真的,您需要用戶訪問該URL,以便他們可以自己授予訪問權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.