一次获取多个Facebook群组的信息

时间:2012-11-10 05:27:18

标签: php facebook facebook-graph-api facebook-group

我经历了大量的谷歌搜索,并且陷入了一个绊脚石,因为他们已经加入了一系列Facebook群组。 第一个调用转到api以获取与用户帐户关联的组对象:

$this->groups = $this->facebook->api('/me/groups');

这适用于基本信息

{
     "version": 1,
     "name": "Email Friends",
     "id": "12345",
     "unread": 1,
     "bookmark_order": 12
},

为了深入挖掘,我需要id:

https://graph.facebook.com/374541109272246?access_token=3fasdfvartfawefwefq

这可以获得群组信息:

{
   "id": "12345",
    "version": 1,
   "owner": {
     "name": "someone",
    "id": "123456"
   },
   "name": "Email Friends",
   "privacy": "OPEN",
   "icon": "https://s-static.ak.facebook.com/someimage.png",
   "updated_time": "2012-09-18T01:25:20+0000",
"email": "123435@groups.facebook.com"
}

通过浏览器简单地通过单个查询拉出多个组:

https://graph.facebook.com/?ids=098765,32113,12345,?access_token=3fasdfvartfawefwefq

使用API​​或FQL,我如何能够一次提取多个组的信息?

        $this->getFBData("groups");

        $groupsData = '<div id="gtooltip">';
        foreach ($this->groups['data'] as $data)
            { $gids .= $data['id'] .','; }

        try{
            $grpData = $this->facebook->api("/?ids=$gids");
        }catch(FacebookApiException $e){
    error_log($e);
            return MsgBox(_t("$e"."$gids"));
        }            

我尝试了facebook->api("/?ids=$gids");的多种变体,但却无法让它正常工作。

1 个答案:

答案 0 :(得分:0)

我想出了一部分。它获取数据,现在我需要弄清楚如何解析它

$batch = array();
        $this->getFBData("groups");

        foreach ($this->groups['data'] as $data)
            { $batch[] = array('method' => 'GET', 'relative_url' => $data['id']); }
$grpData = $this->facebook->api('?batch='.json_encode($batch), 'POST');

它返回一个multidiemsional数组:   $ var = json_decode($ grpData [0] ['body'],TRUE);

现在要弄清楚如何循环使用它。差不多了。