使用PHP获取Facebook好友状态?

时间:2013-05-04 06:39:34

标签: php facebook get status

这是我在SO上发表的第一篇文章。

我正在使用PHP获取Facebook好友状态。特别是,我试图从我的一个Facebook好友中检索所有公共状态,但它只发生在前100个状态。我需要获取所有状态并将其写入文本文件中。这是我正在使用的代码,修补了我在这里阅读的许多答案。

$i=0;
$result = $facebook->api('/my_friend_ID/statuses/',
array('access_token' => $facebook->access_token,'limit'=>100,)); 

//'offset'=> 50,在限制之前使用,它将限制推进50,它不会超越它    //'自'=&>; 2010年,我读到SO甚至还有这个领域,但我无法让它发挥作用。

foreach($result['data'] as $post)
{
    echo $i . '<br>';
    echo $post['id'] . '<br>';
    echo $post['from']['name'] . '<br>';
    echo $post['from']['id'] . '<br>';
    echo $post['name'] . '<br>';
    echo $post['message'] . '<br>';
    echo '*---------------------------------------------------*' . '<br>';
    $i++;
    $write_file = fopen("esempio.txt","a");
    $message = $post['message'] . '<br>';
    fwrite($write_file,$message);
    fclose($write_file);

} 

所以,更清楚一点,如何在文本文件中获取所有朋友状态(旧的和新的)?

1 个答案:

答案 0 :(得分:0)

您需要使用分页https://developers.facebook.com/docs/reference/api/pagination/

$the_statuses = array();

$your_statuses = $facebook->api("/my_friend_ID/statuses/");

while ($your_statuses['data'])
{
    $the_statuses = array_merge( $the_statuses, $your_statuses['data'] );

    $paging = $your_statuses['paging'];
    $next = $paging['next'];

    $query = parse_url($next, PHP_URL_QUERY);
    parse_str($query, $par);

    $your_statuses = $facebook->api(
            "/my_friend_ID/statuses/", 'GET', array(
            'limit' => $par['limit'],
            'until'  => $par['until'] ));
}

然后你可以循环完成所有状态

foreach($the_statuses['data'] as $post)
{
    echo $i . '<br>';
    echo $post['id'] . '<br>';
    echo $post['from']['name'] . '<br>';
    echo $post['from']['id'] . '<br>';
    echo $post['name'] . '<br>';
    echo $post['message'] . '<br>';
    echo '*---------------------------------------------------*' . '<br>';
    $i++;
    $write_file = fopen("esempio.txt","a");
    $message = $post['message'] . '<br>';
    fwrite($write_file,$message);
    fclose($write_file);

}