簡體   English   中英

新增Facebook API:使用getLoginStatus檢測用戶是否登錄

[英]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 ](據我測試,此信息不需要許可)並且它將同時具有maxmin屬性。

登錄的 facebook 用戶將只有一個min屬性,因為這是他們的實際年齡。 我相信提供此信息是為了提供受年齡限制的內容。

一個登錄的 facebook 用戶然后授予訪問權限以連接您的應用程序將具有一個用戶 ID,因此您也可以單獨檢測它。

這通過從簽名請求中獲取信息提供了 3 個用戶狀態:

  • 匿名:具有最大和最小年齡屬性
  • Facebook 用戶:只有一個最小年齡屬性
  • Facebook 用戶(授予權限) :有一個用戶 ID

請記住,facebook 可以隨時撤銷此功能,而我實際上只對此進行了一點測試。 祝你好運。

此頁面提供了一種“非黑客,官方支持”的方式:

可以查明用戶是否通過 javascript API 登錄到 facebook?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM