可能重複:
Why is Facebook PHP SDK getUser always returning 0?Facebook的PHP-SDK的getUser()總是返回0
我使用新的PHP SDK創建一個非常簡單的應用程序。 當我嘗試$ facebook-> getUser()時,它總是返回0(聲稱我沒有登錄到FB,但我已經內部Facebook ..
它只適用於我登錄從Facebook的應用..任何想法如何解決這個問題?
感謝, 尤瓦
可能重複:
Why is Facebook PHP SDK getUser always returning 0?Facebook的PHP-SDK的getUser()總是返回0
我使用新的PHP SDK創建一個非常簡單的應用程序。 當我嘗試$ facebook-> getUser()時,它總是返回0(聲稱我沒有登錄到FB,但我已經內部Facebook ..
它只適用於我登錄從Facebook的應用..任何想法如何解決這個問題?
感謝, 尤瓦
如果的getUser()返回0比你的應用程序沒有被用戶觀看授予的權限。
即使如果你是該應用程序的開發者,那麼它會對你一視同仁,如果你的acco很難測試沒有表現特別。
就這樣說,這很容易。
如果getUser()返回0,則將用戶重定向到登錄URL。假設他們接受你,然後將能夠正確使用getUser()。
參見:一個很好的例子
這裏是我做了什麼..
呼叫的getUser(),如果結果爲0重定向到登錄URL或getLoginUrl()。一旦訪問該應用程序,它將具有GetUser的價值以及來自Facebook的簽名請求。
如果您的第一個計時器使用訪問getLoginUrl的應用程序將您帶到App權限請求,您必須接受它才能使用Facebook應用程序。
我仍然不確定爲什麼我每次調用$ facebook-> getUser()時服務器中的代碼都返回0,但是我找到了一個解決方法:當您創建Facebook對象時,將參數'cookie'設置爲真這樣的:
$facebook = new Facebook(array(
'appId' => MY_APP_ID,
'secret' => MY_APP_SECRET,
'cookie' => true
));
$userId = $facebook->getUser();
if(!empty($userId)) {
echo "This is the user id : " . $facebook->getUser();
}
我在這裏發現了這個信息 https://github.com/facebook/php-sdk/issues/418#issuecomment-2705981
我希望這個信息是有用的,因爲我一直在尋找一種方法,使這項工作了一段時間。
這不適合我。用戶ID始終爲零。 – dlopezgonzalez
解決方案:
了很多建議搞亂後,我發現答案是既簡單又愚蠢。 以下代碼中的「'」不是真正的單引號(或任何它們被稱爲)。取而代之的是使用「'」,這是不能識別的。
基本上'!='
原始代碼:
$config[‘appId’] = 'x0x2x1x9xx3x98x';
$config[‘secret’] = 'xxx79xf7x6xxx5xxxfxxxc5bx46xfxxx';
$config[‘fileUpload’] = false; // optional
固定的代碼:
$config['appId'] = 'x0x2x1x9xx3x98x';
$config['secret'] = 'xxx79xf7x6xxx5xxxfxxxc5bx46xfxxx';
$config['fileUpload'] = false; // optional
我所做的只是替換‘‘‘和’’’,這使我的文本編輯器來識別名稱作爲引用的字符串。我上傳了它,它工作!我認爲這是一個編碼問題,改變了角色,這是有道理的。這意味着FB團隊最初編寫的代碼很好,但是人們遇到了有效的問題。
如何登錄到您的應用程序? –
您是否請求離線訪問權限以交互應用程序? – punit
無論如何我必須這樣做嗎?在所有'如何做到'他們沒有提到我需要用戶的權限。此外,我是應用程序的開發人員..假設我不需要自己的權限.. – Yuvals