2014-04-04 42 views
0

我遇到了一個嚴重的問題,在繼續開發之前必須解決。非開發用戶始終有ID 0

我的老闆創建了應用程序,對他來說,它的工作方式與預期完全一樣 - 用戶已登錄,數據可訪問,一切正常。但對於其他用戶,$ facebook-> getUser()總是返回0,無論如何。顯然,我登錄Facebook,在應用程序中也有一個登錄鏈接,但點擊它不起作用,沒有任何變化。

只有沒有以任何方式連接到應用程序的用戶纔會出現此問題!

前幾天我確認了我的開發者對該應用程序的請求,現在它適用於我的帳戶,在此之前它不工作,不適用於我,不適用於我們嘗試過的任何其他用戶,無論該應用程序是公共或開發模式,這在技術上應該無關緊要。

我們嘗試了很多東西,最終還是現有的互聯網上共享代碼,像這篇文章的底部代碼:http://www.thegeekstuff.com/2014/03/develop-facebook-app/ (用我們自己的應用程序ID和祕密,當然) 不在於它改變任何東西,只是給你一個現成的代碼示例。

即使我刪除了下面的所有內容「$ user = $ facebook-> getUser();」並在此之後放置echo $user; die();,它總是顯示用戶ID爲0.

我注意到的另一件事可能有助於解決此問題:使用與文章中相同的代碼,我老闆的會話包含但是當我用非開發用戶打開應用程序時,首先只有「fb_app-id_state」變量,當我刷新頁面時,它將被刪除,並且會話爲空。如果我再次刷新頁面,則會使用不同的值再次創建該變量,然後再次刷新該變量,依此類推。

經過一天試圖讓這個狗屎與PHP工作,我切換到JS SDK。顯然它也行不通,但是,我還沒有收到我老闆的具體信息,因爲我沒有一個假賬戶來自己測試它。

顯而易見的問題是:發生了什麼,爲什麼認證不按預期工作?

編輯:我的代碼 - http://pastebin.com/qCPtfTHs

+0

你能發佈你的代碼嗎?並且在Facebook配置中的「baseurl」與App儀表板中的網站URL相同?他們必須是相同的 –

+0

@AdamAzad添加鏈接到代碼。該應用程序是一個頁面選項卡應用程序,只有一個頁面選項卡URL,並且該應用程序只有一個頁面。我不知道你在哪裏提到'baseurl'。我的情況真的需要嗎? – jurchiks

回答

0

你需要尋找的應用程序設置。只有所有者,應用管理員,開發人員才能在沙箱模式下使用您的應用。所有其他用戶這個應用程序不工作或工作馬車。刪除測試模式,並在實時模式下放出應用程序。

+0

「無論應用程序是公開還是開發模式」。 – jurchiks