【问题标题】:facebook app token instead user token php sdkfacebook 应用程序令牌而不是用户令牌 php sdk
【发布时间】:2012-03-29 18:41:10
【问题描述】:

我不知道为什么当我在 codeigniter 上使用 facebook php sdk 3.1.1 和以下代码时:

...
...
$this->config->load('facebook', TRUE);
$config = $this->config->item('facebook');
$this->load->library('facebook', $config);

echo $this->facebook->getAccessToken();
....

我取而代之的是(正确的)用户访问令牌。
事实上,当我尝试打电话时

$this->facebook->api('/me')

php 向我返回这样的错误

致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。投入 /srv/www/...

我尝试将库版本更改为 3.0,但没有任何改变

有人知道吗?

【问题讨论】:

    标签: php facebook codeigniter sdk token


    【解决方案1】:

    /me 返回您的个人资料信息。如果要查询/me,则需要通过用户访问令牌进行身份验证,该令牌位于应用级访问令牌之上。

    闲暇时细读:https://developers.facebook.com/docs/authentication/

    【讨论】:

    • 是的,我知道,我在做什么......也许它不起作用,因为我在 Facebook 页面选项卡中?所以库不能访问变量$_REQUEST['code']$_REQUEST['state']
    • 要让/me 工作,您需要以 Facebook 用户的身份“登录”到您的应用程序 - 这告诉 Facebook 可以与您创建的应用程序共享您自己的个人信息。这个不同于您的应用访问令牌。通读文档 - 它会有所帮助。
    • 已解决。为了解决这个问题,我必须在我的控制器的 __construct() 方法中加载 facebook 库后调用 $this->facebook->getAccessToken();。通过这种方式 facebook sdk 检索正确的访问令牌并将其存储在会话中。谢谢。
    猜你喜欢
    • 2015-02-08
    • 1970-01-01
    • 2012-04-12
    • 2012-05-17
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多