facebook php-sdk提供与javascript FB.getLoginStatus相同的功能

时间:2012-01-04 14:33:36

标签: facebook facebook-javascript-sdk facebook-php-sdk

我正在使用javascript sdk通过使用FB.getLoginStatus()函数来了解用户是否登录并连接到我们的网站'应用程序。 我想知道php-sdk是否向我提供了登录facebook的用户的详细信息。 如果用户登录Facebook并连接到我们的应用程序,我必须让他们直接登录我们的网站。 如何使用php sdk完成。

提前致谢。

4 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','pic_square'));

是的,他们确实和FB.getLoginStatus()有类似的东西:)

$params = array(
  'ok_session' => 'https://www.myapp.com/',
  'no_user' => 'https://www.myapp.com/no_user',
  'no_session' => 'https://www.myapp.com/no_session',
);

$next_url = $facebook->getLoginStatusUrl($params);

在此处找到:https://developers.facebook.com/docs/reference/php/facebook-getLoginStatusUrl/

答案 1 :(得分:0)

只需检查GitHub页面上的示例/用法: https://github.com/facebook/facebook-php-sdk

答案 2 :(得分:0)

根据文件(https://github.com/facebook/facebook-php-sdk),做完之后:

require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

// Get User ID
$user = $facebook->getUser();

要检查用户是否仍然登录Facebook (FB.getLoginStatus的种类),您需要:

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

答案 3 :(得分:0)

如@DMCS所述,应使用此功能: http://developers.facebook.com/docs/reference/php/facebook-getLoginStatusUrl/

  1. 您生成了一个网址:$ next_url = $ facebook-> getLoginStatusUrl();
  2. 将用户重定向到此url:标头('Location:'。$ next_url);
  3. FB将返回用户,其中包含有关登录状态的会话信息(POST)
  4. SDK将解析返回$ _POST info
  5. 使用$ facebook-> getUser();获取用户标识(如果已登录)
  6. 到目前为止一切顺利。唯一的问题是,自从Facebook过渡到oAuth2.0以来,此功能(第4点)已被破坏,另请参阅此错误报告: http://developers.facebook.com/bugs/295348980494364

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

    干杯!