使用PHP中的facebook api获取用户喜欢的页面

时间:2015-06-18 07:39:54

标签: php facebook

我想提取所有喜欢的页面(名称,类别,页面ID)。我就是在那个时候,它返回了一个带有最后100个喜欢页面的json,并且它还给我一种分页(如here)。我的问题是,我不想要一个分页,我需要所有我喜欢的页面,一次。我想将所有这些都放在db中。这就是我所取得的成就:

//.....
//login part
//.....
$user_profile = (new FacebookRequest($session, 'GET', '/me/likes?limit=100' ))->execute()->getGraphObject(GraphUser::className());
echo "<pre>"; print_r($user_profile); echo "</pre>";

如何将我喜欢的所有页面放到一个数组中?

2 个答案:

答案 0 :(得分:0)

你可以增加限制,但是有一个最大数量,这是非常不可靠的。你永远不能确定得到所有的喜欢,唯一真正可靠的方法是实现分页。例如,您可以使用递归函数来获取具有分页的所有条目。如果你不知道我的意思,谷歌的“递归函数php”(或类似的东西)。

答案 1 :(得分:0)

正如luschn建议我用户递归:

$user_profile = (new FacebookRequest($session, 'GET', '/me/likes?limit=100' ))->execute()->getGraphObject(GraphUser::className());
$user_array =  $user_profile->asArray(); 
require_once __DIR__ . "/fb/demo/Fb.php";
$fb = new Fb();     $fb->get_liked_pages(json_decode(file_get_contents($user_array['paging']->next)));

这是fb类的内容:

class Fb{

        public function get_liked_pages($next){


            if (!empty($next->paging->next)){
                $params = json_decode(file_get_contents($next->paging->next));
                //here you can implement a script for adding data in db
                return $this->get_liked_pages($params);
            }
        }
    }