如何使用Graph API分别获取每个Facebook页面的名称?

问题描述:

我想在Facebook中显示用户是使用新Graph API的管理员的所有页面。我要做的就是:如何使用Graph API分别获取每个Facebook页面的名称?

 $queries = '{ 
     "page_admin_ids" : "SELECT page_id FROM page_admin WHERE uid = ' . $uid . '", 
     "page_name_and_id" : "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #page_admin_ids)" 
     }'; 

     $data = array(
      'method' => 'fql.multiquery', 
      'queries' => $queries, 
      'callback' => '' 
     ); 

     $fqlResult = $facebook->api($data); 
     print_r($fqlResult); 

此代码工作和阵列的所有数据都显示在一个阵列格式。我想分别使用每个页面名称,并将其添加到我的html代码中。我怎样才能得到结果的第一个元素?

在此先感谢

如果您使用的是新的Facebook PHP SDK,那么你应该能够做到以下几点:

<?php 
$facebook = new Facebook(array(
    'appId' => $config['appid'], 
    'secret' => $config['appsecret'], 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$user = null; 
if ($session) { 
    try { 
     $user = $facebook->api('/me'); 
    } 
    catch (FacebookApiException $e) { 
     error_log($e); 
    } 
} 
if (!$user) { 
    $loginUrl = $facebook->getLoginUrl(array(
     'canvas' => 1, 
     'fbconnect' => 0, 
     'req_perms' => 'manage_pages', // request extended perms. here 
     'next' => "http://www.example.com/", 
     'cancel_url' => "http://www.example.com/", 
    )); 
    echo '<fb:redirect url="' . $loginUrl . '" />'; 
} 

$pages = $facebook->api('/me/accounts'); 
... 

这给我的网页我是一个管理员列表在Facebook上。

+0

非常感谢Martin! – novellino 2010-11-03 16:01:02

+0

虽然我使用新的PHP SDK,但它没有工作。也许我的问题不是很清楚,这个“账户”是为了别的吗?无论如何,我找到了一个办法。我使用了一个for循环,然后这个: $ fqlResult [1] ['fql_result_set'] [$ i] ['name'] 所以我设法让我的所有页面,但一个接一个。无论如何,多谢了 – novellino 2010-11-04 09:13:12

+0

据我了解,如果我也添加manage_pages权限,这件事可以工作吗?你能解释我怎么做到这一点? – novellino 2010-11-04 13:41:52