【发布时间】:2014-02-27 18:20:22
【问题描述】:
我正在尝试检索授权 Facebook 用户有权使用 PHP SDK 通过 Facebook 应用程序更新的页面列表。
require_once('facebook.php');
$config = array(
'appId' => APPID,
'secret' => SECRET,
'cookie' => true,
);
$facebook = new Facebook($config);
$params = array(
'method' => 'fql.query',
'query' => "select page_id, name from page where page_id in (select page_id from page_admin where uid = me())",
);
$result = $facebook->api($params);
print_r($result);
当我们将此 FQL 放入 Facebook 的 Graph Explorer 中进行测试时,它会为我们提供以下(正确的)数据。
{
"data": [
{
"page_id": 1234567689,
"name": "A page we have access to"
},
{
"page_id": 987654321,
"name": "Another page we have access to"
}
]
}
当我们使用 PHP SDK 时,它会返回一个没有值的数组。我已验证我们在应用程序设置中拥有 manage_pages 权限。此外,如果我将 FQL 参数简化为:
$params = array(
'method' => 'fql.query',
'query' => "SELECT name from user where uid = me()",
);
这适用于 Graph Explorer 和 Facebook PHP SDK。这让我相信问题是应用程序区域中的一些隐藏设置影响了第一个 FQL 查询。顺便说一句,在使用 Graph Explorer 时,我们成功返回数据所需的唯一权限是 manage_pages,所以我认为这不是权限问题。
之前是否有人遇到过这种情况,或者是否有人成功返回了 Facebook 用户作为管理员的页面列表?关于如何开始调试的任何想法?如果这是某种错误,是否有其他方法可以检索我们想要的信息?
【问题讨论】:
-
输出您的脚本用来进行调用的访问令牌 (
$facebook->getAccessToken()) 和 check whether it really has the permission ... -
当我输出 $facebook->getAccessToken() 我收到一个大约 70-80 个随机字符的字符串。有没有办法通过解密来真正查看权限?
-
你点击我发布的链接怎么样,天才……? ;-)
-
您的链接文本和默认字体文本在我的第二台显示器上几乎相同。我什至没有意识到这是一个链接。 StackOverflow 应该在两者之间有更多的对比。
标签: php facebook facebook-graph-api sdk facebook-fql