[英]FB.getLoginStatus doesn't fire if the user is not logged in to Facebook
[英]New Facebook API: using getLoginStatus to detect whether user is logged in
Is there a way, using the new Facebook API, to detect whether a user is logged in or not on facebook, without any relation to the facebook app? 這一切都應該在網站頁面上的客戶端 javascript 中完成。
更詳細:根據 facebook 文檔,如果“用戶已登錄並連接到您的應用程序”,getLoginStatus 將檢測用戶是否已登錄。 另一方面,如果“用戶未登錄 Facebook,或未授權您的應用程序”,它將報告用戶已注銷。
對我來說,這意味着 getLoginStatus 永遠不會在用戶第一次使用您的應用程序時起作用,因為任何用戶第一次使用您的應用程序時,他/她沒有授予您的應用程序任何權限。
此外,如果用戶已登錄,用戶必須授予應用程序哪些特定權限才能使 getLoginStatus 工作? 我已經檢查了這個權限列表(在 Facebook API 文檔上):
http://developers.facebook.com/docs/authentication/permissions/
並且沒有看到與此類檢測有關的任何許可。
這是我第一次使用 Facebook API,非常令人沮喪。 我搜索了互聯網,似乎普遍的共識是您根本無法檢測到用戶是否登錄或退出。
我發現,當非 facebook 用戶訪問該頁面時,您可以從 signedRequest 中檢查人員 [ age ](據我測試,此信息不需要許可)並且它將同時具有max和min屬性。
登錄的 facebook 用戶將只有一個min屬性,因為這是他們的實際年齡。 我相信提供此信息是為了提供受年齡限制的內容。
一個登錄的 facebook 用戶然后授予訪問權限以連接您的應用程序將具有一個用戶 ID,因此您也可以單獨檢測它。
這通過從簽名請求中獲取信息提供了 3 個用戶狀態:
請記住,facebook 可以隨時撤銷此功能,而我實際上只對此進行了一點測試。 祝你好運。
此頁面提供了一種“非黑客,官方支持”的方式:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.