我有一段时间访问令牌问题,我认为通过使用try-catch语法解决了这个问题。不幸的是,它所做的只是隐藏错误,并且仍然会有/ me / accounts将返回空的时间。这是我的代码:
if($facebook->getUser()==0) {
header("Location:{$facebook->getLoginUrl(array('scope' => 'SCOPE'))}");
} else {
$user = $facebook->getUser();
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'SCOPE'
));
}
try {
$access_token=$facebook->setExtendedAccessToken();
$accounts_list = $facebook->api('/me/accounts');
.
.
.
} catch(FacebookApiException $e) {
$results = $e->getResult();
}
}
任何人都可以告诉我为什么我的代码有时会生成一个空数组?
答案 0 :(得分:0)
在浏览Facebook上的开发者博客后,我发现了这个:
从/ me / accounts /删除应用 我们将不再在图谱API中的/ me / accounts /下显示应用。您可以通过点击/ me / applications / developer /.
来访问用户是开发人员的应用程序列表
(您可以找到完整的更改列表here
因此,您获取空数组的原因可能是不再支持/ me / accounts。
此外,当进行需要访问令牌的api调用时,您应该像这样传递它:
$facebook->setExtendedAccessToken();
$access_token = $facebook->getAccessToken()
$facebook->api('/me/accounts', 'GET', array(
'access_token' => $access_token));