2015-08-15 59 views
0

我正在使用PHP SDK制作基于Web的Facebook应用程序。Facebook API,获取页面用户管理员(manage_pages)

我想获取所有页面的列表,用户管理员,并将它们显示给用户。

尽管我在测试应用程序中测试了所有内容,但您不需要查看和接受扩展权限,但目前这种方式仍无法正常工作。

if (isset($session)) { 
    // graph api request for user data 
    $request = new FacebookRequest($session, 'GET', '/me?fields=id,name,accounts' ); 
    $response = $request->execute(); 
    //get response 
    $graphObject = $response->getGraphObject(); 
    $name = $graphObject->getProperty('name'); 
    $id = $graphObject->getProperty('id'); 
    $email = $graphObject->getProperty('email'); 
    $accounts = $graphObject->getProperty('accounts'); 

    echo "Your name is: "; 
    echo "$name."; 
    echo "<br>$accounts"; 
} 

任何帮助是极大的赞赏

回答

2

很奇怪,但我没有找到方法FacebookRequest->的execute()... 但是我发现这对我的作品的解决方案:

function GetPages() 
{ 
    $token = 'CurrentUsersTokenIsHere'; 
    // Instantiates a new Facebook super-class object from SDK Facebook\Facebook 
    $fb = new Facebook([ 
     'app_id'  => $fb_app_id, 
     'app_secret' => $fb_app_secret 
    ]); 
    $response = $fb->get(
     '/me?fields=accounts,name,email', 
     $token 
    ); 
    $graphObject = $response->getDecodedBody(); 
    $fbUserName = $graphObject['name']; 
    $fbUserEmail = $graphObject['email']; 
    $fbUserID = $graphObject['id']; 
    $pages  = $graphObject['accounts']; 
    // In general there is an array and you can get each page like: 
    $singlePage = $pages['data']['0']; 
    $pageName = $singlePage['name']; 
    $pageCategory= $singlePage['category']; 
    $pageID = $singlePage['id']; 
    return $pages; 
} 

还有一两件事,让我们说的理解,$ graphObject [“账户”]它是一个数组,看起来像:

array(
'data' => array (
     0 => array (
        'access_token' => 'someToken', 
        'category'  => 'Some category', 
        'name'   => 'Some name', 
        'id'   => 'Some id', 
        'perms'  => array (
              0 => 'CREATE_ADS', 
              1 => 'BASIC_ADMIN', 
            ), 
       ), 
     1 => ... 
     ), 
'paging' => array (
     'cursors' =>array (
        'before' => 'Mzc4MDAwOTcyMjE4MTYw', 
        'after' => 'MTQ1MTM2NzgxNTE0MDkwMAZDZD', 
        ), 
       ), 
); 
0
  1. 确保您有manage_pages许可
  2. 尝试在Graph API Explorer用相同的访问令牌相同的呼叫,如果它不存在,然后它不是一个PHP SDK问题
  3. 尝试调试$response,看看有什么在它
0

所有<page_id>/admins终点的第一版本V2.2已被弃用,更高check it here但如果你有v2.1你可以做

$request = new FacebookRequest($session, 'GET', '<your_page_id>/admins' ); 
$response = $request->execute(); 
// Todo with $response 

注意:确保您将此请求与Page Access Token一起发送。

相关问题