我猜 FB.getLoginStatus 是用来代替会话的?
FB.getLoginStatus
用于帮助您根据登录状态优化访问者体验,因此它不能替代“会话”。
每次用户在我的网站中输入新页面时,我都必须检查 FB.getLoginStatus。这是否意味着我必须为每个页面初始化 JavaScript SDK?每个页面都有 50 行代码,只是为了检查登录状态......
好吧,如果您想使用 SDK,则必须初始化 Javascript SDK。现在我看不出代码行数有什么问题,因为 Facebook 已经异步加载了 SDK,因此它不会阻塞你的页面资源。
对于您的第一点,您不必FB.getLoginStatus
每次在页面加载时都调用,Facebook 已经在相关文档中声明了这一点:
虽然您可以随时调用FB.getLoginStatus
(例如,当用户尝试进行社交操作时),但大多数社交应用程序需要在页面加载后尽快了解用户的状态。在这种情况下,可以通过设置when you callFB.getLoginStatus
来检查用户的状态,而不是显式调用。status: true
FB.init
要接收此调用的响应,您必须订阅该
auth.statusChange
事件。此事件传递的响应对象与显式调用返回的响应对象相同FB.getLoginStatus
。
现在您可能错过的一件事是PHP-SDK:
Facebook SDK for PHP 可以与 Facebook SDK for Javascript 结合使用,在应用程序的客户端和服务器端提供无缝会话管理。
这将使您的生活更轻松,因为您会在(之前)加载页面时了解用户状态,从而相应地自定义用户体验,然后等待由 Javascript SDK 触发的任何状态更改。