2013-01-20 52 views
0

我遵循本指南:https://developers.facebook.com/docs/howtos/login/getting-started/Facebook登錄:檢查每個頁面的身份驗證?

一切工作正常關於登錄。我不明白的是我如何處理'會話':

  • 我想用FB.getLoginStatus代替會話?
  • 每次用戶在我的網站上輸入一個新頁面時,我都必須檢查FB.getLoginStatus 36。這是否意味着我必須爲每個頁面初始化JavaScript SDK?這就是每個頁面的50行代碼,只是爲了檢查登錄狀態。

我正在使用PHP,MySQL,JavaScript和HTML5。

回答

0

從Facebook Developers區域看來,他們似乎有一個關於如何在不調用Javascript SDK的情況下登錄的部分。

用戶將具有令牌的API訪問可用於進一步的請求。

我希望有幫助。

+0

謝謝你:) – user1163859

1

我想用FB.getLoginStatus代替會話?

FB.getLoginStatus是用來幫助您優化遊客體驗基於他們的登錄狀態,因此它不是一個替代品「會議」的。

我必須檢查FB.getLoginStatus,每次用戶在我的網站上輸入一個新頁面 。這是否意味着我必須爲每個頁面初始化JavaScript SDK ?那每一頁50行的代碼只是爲了檢查 登錄狀態...

好,初始化的Javascript SDK是你有如果你希望使用的SDK做一些事情。現在我沒有看到代碼行數的錯誤,因爲Facebook已經異步加載SDK,因此它不會阻止您的頁面資源。

而對於你的第一個點,你不必調用在頁面加載每次FB.getLoginStatus和Facebook已經規定,這在相關document

雖然你可以調用FB.getLoginStatus任何時間(例如,當 用戶試圖採取社交動作時),大多數社交應用需要在頁面加載後儘快知道用戶的狀態。在這種情況下, 而不是明確呼叫FB.getLoginStatus,當您撥打FB.init時,可能通過設置status: true來檢查用戶的狀態。

要接收此調用的響應,您必須訂閱 auth.statusChange事件。此事件傳遞的響應對象爲 ,與通過明確調用FB.getLoginStatus 返回的響應對象相同。


現在一件事,你可能會錯過,是PHP-SDK

Facebook的SDK爲PHP可以與Facebook的SDK 協同工作,爲Javascript跨越提供無縫會話管理 客戶端和應用程序的服務器端。

這會讓你的生活更輕鬆,因爲你可以在加載頁面之前(之前)瞭解用戶狀態,並相應地自定義用戶體驗,然後等待由JavaScript SDK觸發的任何狀態更改。

+0

謝謝。只是爲了讓我的頭在這附近:PHP的SDK讀取由JavaScript SDK設置的cookie?那麼爲了獲得當前狀態,我只需在我的網站中查看cookie? – user1163859

+0

是的,PHP-SDK和JS-SDK共享相同的cookie名稱,因此這就是它們很好地結合在一起的方式。現在檢查「*當前狀態*」(服務頁面時),您可以使用'$ facebook-> getUser()'並始終使用JS-SDK事件偵聽器來處理用戶可能發生的任何更改在頁面上。 – ifaour

+0

您可以隨時瀏覽SDK以瞭解其運作方式,例如[函數](https://github.com/facebook/facebook-php-sdk/blob/master/src/base_facebook.php#L659)。 – ifaour