2012-03-29 53 views
0

我不知道为什么,当我使用Facebook的PHP SDK 3.1.1 下面的代码:Facebook的应用程序,而不是令牌用户令牌PHP SDK

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

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

我检索应用程序的访问令牌相反(正确的)用户访问令牌。当我尝试
INFACT调用

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

PHP返回我这样的错误

致命错误:未捕获OAuthException:活动的访问令牌必须用于查询当前用户信息。抛出 /SRV /网络/ ...

我已经尝试改变库版本,直到3.0,但什么都没有改变

任何人都知道什么样?

回答

2

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

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

+0

是的,我知道,是我做什么....也许这是行不通的,因为我在一个Facebook页面标签是? 因此,库无法访问变量'$ _REQUEST ['code']'和'$ _REQUEST ['state']' – jkkso 2012-03-29 20:22:49

+0

要使'/ me'正常工作,您需要以“登录” Facebook用户 - 告诉Facebook可以与您创建的应用程序分享您自己的个人信息。这与您的应用程序访问令牌不同。通读文档 - 它会有所帮助。 – Seabass 2012-03-29 20:30:52

+1

**已解决**。为了解决这个问题,我必须调用'$ this-> facebook-> getAccessToken();'在Facebook库加载后在我的控制器的'__construct()'方法中。 通过这种方式facebook sdk检索正确的访问令牌并将其存储在会话中。 谢谢。 – jkkso 2012-03-29 21:12:39

相关问题