这是我在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);
}
所以,更清楚一点,如何在文本文件中获取所有朋友状态(旧的和新的)?
答案 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);
}