有关Facebook当前用户的信息

时间:2012-01-05 07:19:51

标签: php facebook facebook-php-sdk

我正在尝试获取当前登录用户的facebook用户ID。 我用下面这段代码得到了错误“未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息”

require '../src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => '226668060741665',
  'secret' => 'secret key',
));

$rr=$facebook->getAccessToken();

$params = array(
'access_token' => $rr,
'installed' => 'true',
'permissions' => 'read_stream,publish_stream'
);
$eded=$facebook->api("/me/", "GET", $params);

我尝试使用Facebook::getLoginStatusUrl(),但没有得到它返回的内容。 如果我可以使用上述功能,请告诉我如何获取当前登录用户的ID以及如何使用Facebook::getLoginStatusUrl()的返回值

提前致谢

2 个答案:

答案 0 :(得分:0)

您应该使用最近的PHP-SDK并阅读详细说明如何authenticate用户和get his details的文档。

PHP-SDK examples

中已经存在的确切答案

您也可以参考问题Get ID from Facebook PHP SDK来回答您的问题。

答案 1 :(得分:0)

请按照以下步骤操作:

  1. 您生成了一个网址:$next_url = $facebook->getLoginStatusUrl();
  2. 将用户重定向到此网址:header('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知道您有同样的问题。

    干杯!