我試圖檢索授權的Facebook用戶有權訪問的頁面列表,通過使用PHP SDK的Facebook應用更新。什麼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()'),並且[檢查它是否具有權限](https://developers.facebook.com/tools/調試)... – CBroe
當我輸出$ facebook-> getAccessToken()我收到一個字符串返回大約70-80隨機字符。有沒有辦法通過解密來實際*查看權限? – OrangeFrog
您如何點擊我發佈的__link__,天才......? ;-) – CBroe