0

我正在遵循本指南:https ://developers.facebook.com/docs/howtos/login/getting-started/

关于登录,一切正常。我不明白的是我如何处理“会话”:

  • 我猜 FB.getLoginStatus 是用来代替会话的?
  • 每次用户在我的网站中输入新页面时,我都必须检查 FB.getLoginStatus 36。这是否意味着我必须为每个页面初始化 JavaScript SDK?每个页面都有 50 行代码,只是为了检查登录状态。

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

4

2 回答 2

1

我猜 FB.getLoginStatus 是用来代替会话的?

FB.getLoginStatus用于帮助您根据登录状态优化访问者体验,因此它不能替代“会话”。

每次用户在我的网站中输入新页面时,我都必须检查 FB.getLoginStatus。这是否意味着我必须为每个页面初始化 JavaScript SDK?每个页面都有 50 行代码,只是为了检查登录状态......

好吧,如果您想使用 SDK,则必须初始化 Javascript SDK。现在我看不出代码行数有什么问题,因为 Facebook 已经异步加载了 SDK,因此它不会阻塞你的页面资源。

对于您的第一点,您不必FB.getLoginStatus每次在页面加载时都调用,Facebook 已经在相关文档中声明了这一点:

虽然您可以随时调用FB.getLoginStatus(例如,当用户尝试进行社交操作时),但大多数社交应用程序需要在页面加载后尽快了解用户的状态。在这种情况下,可以通过设置when you callFB.getLoginStatus来检查用户的状态,而不是显式调用。status: trueFB.init

要接收此调用的响应,您必须订阅该 auth.statusChange事件。此事件传递的响应对象与显式调用返回的响应对象相同FB.getLoginStatus


现在您可能错过的一件事是PHP-SDK

Facebook SDK for PHP 可以与 Facebook SDK for Javascript 结合使用,在应用程序的客户端和服务器端提供无缝会话管理。

这将使您的生活更轻松,因为您会在(之前)加载页面时了解用户状态,从而相应地自定义用户体验,然后等待由 Javascript SDK 触发的任何状态更改。

于 2013-01-20T07:22:46.223 回答
0

从 Facebook 开发人员区域来看,他们似乎有一节介绍如何在不调用 Javascript SDK 的情况下登录。

https://developers.facebook.com/docs/howtos/login/client-side-without-js-sdk/

用户将拥有一个 API 访问令牌,可用于进一步的请求。

我希望这会有所帮助。

于 2013-01-20T01:09:23.833 回答