2012-07-01 23 views
1

我已經設置了我的FB應用程序,以便它具有移動Web URL組件。我從測試中注意到,每當我在移動設備上導航到我的應用的畫布URL時,Facebook都會自動將移動設備重定向到定義的移動Web URL。移動Web URL和signed_request

如果我從桌面執行相同操作,則畫布URL將加載到瀏覽器中。換句話說,如果FB在導航到應用程序的畫布URL時檢測到移動設備,它將立即重定向到定義的移動Web URL並且不加載畫布URL內容。

問題是,當畫布URL加載時,FB傳遞給它一個signed_request表單參數。但是,當它重定向到移動Web URL時,它不會。

我注意到當檢查一個網絡嗅探器時,當移動Facebook將app.facebook.com URL重定向到m.facebook.com時,並且可能認爲signed_request在一路上正在迷失。但是,當檢查對畫布URL的第一次調用時,那裏也沒有signed_request。

這就好像Facebook在處理畫布URL時只提供signed_request,而在移動的情況下,它卻從不是。

有沒有人有關如何獲得signed_request的任何見解或建議?我現在唯一的想法是迫使用戶在移動應用程序後立即授權應用程序,但如果可能的話,我寧願不這樣做(我不是門控技術的粉絲)

乾杯

---編輯---

閉幕 - 看到我的回答。

+0

http://stackoverflow.com/questions/8753179/facebook-canvas-app-vs-facebook-mobile-web-app – CBroe

+0

謝謝老兄,看到了我發佈帖子後。自此得出同樣的結論,並編碼了移動專用認證流程。吮吸一點,但嘿嘿 – Snouto

回答

0

我已經得出結論,移動URL沒有收到signed_request,並且要獲得相同類型的數據,需要通過FB Auth過程進行。結束這個問題。

0

如果此人已授權您的應用程序,則應在您的移動應用程序中傳遞查詢字符串中的「代碼」。您的後端可以將該代碼交換爲access_token,然後通過請求https://graph.facebook.com/me?access_token=[token從代碼交換中檢索]來獲取當前用戶信息。這將允許您自動登錄當前用戶。

但是,如果沒有通過身份驗證,您不會收到類似當前用戶的國家,區域設置和年齡的信息。這是目前移動網絡應用程序的限制。