2013-08-25 138 views
0

2年前我建立了一個帶有Facebook登錄的網站,一切正常。昨天,我開始研究一個新項目,並遇到以下問題。我使用最新版本的SDK,並且服務器使用PHP 5.3.16並託管在iPage上。Facebook PHP SDK的問題

  1. 登錄不起作用。當我授予訪問應用程序的權限後,getUser()總是返回0.
  2. 當我使用Javascript SDK(工作)登錄時,api(/ me)不會返回任何內容,但api(/ user_id)可以正常工作。
  3. 註銷鏈接無法正常工作,並將我重定向到facebook facebook主頁,而無需註銷我的應用程序。

我在PHP SDK上使用了示例文件,所以我確定代碼沒有問題。因此,我的服務器或SDK本身肯定有問題。我讀了StackOverflow和其他網站上的數十個線程,但找不到任何修復程序。 由於有數千個運行FB PHP SDK的網站沒有問題,所以我很困惑我做錯了什麼。我會很感激任何幫助。

+0

一些固定建議操縱訪問令牌,但FB明確表示,使用OAuth時,訪問令牌由SDK處理,您無需對其執行任何操作。 – friendq

回答

0

在第3部分中,您可以使用getLogoutURL()中的下一個參數指定要在註銷時發送用戶的URL,它只是默認爲facebook。無論如何,它所做的一切就是將你註銷Facebook,如果你指定了下一個,那麼它會在後臺運行;如果沒有,則會在後臺運行,不會停止你的應用程序訪問你的詳細信息(不正確?),除此之外,我不能幫助,因爲我自己網站已暫停2周,因爲我無法解決註銷問題,在第一次訪問後,即使未登錄FB,它也始終設法獲取用戶ID並報告用戶詳細信息。

+0

我決定自己做註銷: $ facebook-> destroySession(); ($ _SESSION ['fb_'。$ facebook-> getAppId()。'_code'])){ 未設置($ _SESSION ['fb_'。$ facebook-> getAppId()。'_code' ]); ($ _SESSION ['fb_'。$ facebook-> getAppId()。'_access_token'])){ }設置($ _SESSION ['fb_'。$ facebook-> getAppId()。'_access_token' ]); ($ _SESSION ['fb_'。$ facebook-> getAppId()。'_user_id'])){ } ]); } – friendq

+0

除非我誤解你的評論,我假設你把它放在你的網站的註銷部分?這不能解決我的問題。或者我只是誤解了你的回覆。我遇到的問題是,當從Facebook註銷時,它仍然設法獲取我的用戶ID和我的用戶數據以及我需要登錄的所有內容(我在fb dev頁面上跟着教程) - 它不是應該的要做到這一點,但假設拋在一邊,這意味着任何人都可以像其他人一樣登錄我的網站,只要知道他們公開的fb ID即可。只有用我網站的註銷按鈕解決這個問題並不能解決問題 –