【问题标题】:Information about current user in facebookfacebook中当前用户的信息
【发布时间】:2012-04-11 05:06:22
【问题描述】:

我正在尝试获取当前登录用户的 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() 的返回值

提前致谢

【问题讨论】:

    标签: php facebook facebook-php-sdk


    【解决方案1】:

    您应该使用最近的 PHP-SDK 并阅读文档,其中确切显示了如何 authenticate 用户和 get his details

    你需要的确切答案已经出现在PHP-SDK examples

    您也可以参考问题Get ID from Facebook PHP SDK,其中也有您的问题的答案。

    【讨论】:

    • 您是否关注了我回答中的最后一个链接?去做吧!
    【解决方案2】:

    按照以下步骤操作:

    1. 你生成一个url:$next_url = $facebook->getLoginStatusUrl();
    2. 将用户重定向到这个网址:header('Location: '.$next_url);
    3. FB 将返回用户,其中包含有关登录状态的会话信息
    4. SDK 会解析返回的信息
    5. 使用$facebook->getUser(); 获取access_token 和用户ID(如果已登录)

    到目前为止一切顺利。唯一的问题是,自从 Facebook API 转换到 oAuth2.0 后,此功能(第 4 点)已损坏,另请参阅此错误报告:http://developers.facebook.com/bugs/295348980494364

    返回的 $_GET['session'] 在新的 oAuth2.0 SDK 中没有用,它在旧的 PHP-SDK v2(当前是 3.1.1)中使用。

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

    干杯!

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 1970-01-01
      • 2017-04-06
      • 2016-05-13
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多