2013-01-20 55 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