我如何使用facebook-> getLoginStatusUrl()?

时间:2011-09-24 11:22:43

标签: php facebook session

我目前将用户重定向到给定的网址,并将用户返回到带有2个参数的网页:'session'和'perms'。

烫发的意义很明显。

Session似乎是一个JSON斜杠转义数组。在json_decode(slashcstrip($ _ GET ['session']))之后,我找到以下成员:uid,session_key,secret,expires,base_domain,access_token,sig。什么是秘密和信号?如何使用它们来验证数据?

谢谢!

4 个答案:

答案 0 :(得分:1)

sdk使用该会话信息验证您的数据。您需要做的就是调用$ facebook-> getUser()并检查您是否找回了用户ID。

答案 1 :(得分:1)

$ next_url = $ facebook-> getLoginStatusUrl($ params);检索fb用户登录状态

答案 2 :(得分:1)

根据我的理解,status URL用于确定用户的状态。如果您对生成的状态URL进行HTTP调用,facebook将根据用户状态重定向到其中一个重定向URL,您可以使用URL的请求更新应用程序上的用户会话,并对其执行处理操作。用户状态

ok_session => user has facebook session -> start app
no_user    => unknown user, ask user to login
no_session => known user, ask to login

答案 3 :(得分:0)

请按照以下步骤操作:

  1. 您生成了一个网址:$ next_url = $ facebook-> getLoginStatusUrl();
  2. 将用户重定向到此url:标头('Location:'。$ next_url);
  3. FB将返回用户,其中包含有关登录状态的会话信息
  4. SDK将解析返回的信息
  5. 使用$ facebook-> getUser();获取access_token和userid(如果已登录)
  6. 到目前为止一切顺利。 唯一的问题是,自从Facebook API过渡到oAuth2.0后,这个功能(第4点)就被打破了,另请参阅此错误报告: http://developers.facebook.com/bugs/295348980494364 返回的$ _GET ['session']在新的oAuth2.0 SDK中没用,它在旧的PHP-SDK v2中使用(当前为3.1.1)。

    因此,请通过添加复制品让FB知道您有同样的问题。

    干杯!