当我访问Facebook Feed时,这些是最后几行:
"paging": {
"previous": "https://graph.facebook.com/v2.1/962582957103509/feed?limit=10&since=1420156351&access_token=xxx&__paging_token=enc_AezQonKWxBRti3bfaBZB6neom26Sz9fvsTXspJuJw6sOEoW8HOiTXZ2Ci5PiyeD69-Yfl4n7y4HFrv9wYUlcYVCRTRqz8P9osAFdwmTOq9Ehdg&__previous=1",
"next": "https://graph.facebook.com/v2.1/962582957103509/feed?limit=10&access_token=xxx&until=1420134308&__paging_token=enc_Aexa_5g1FrfvOTcdIVludEkmqfstBYu3Chbs9WafB00XSu6XCk8zS4kkfaw_97WHy4PLt21BqEidTJ8GpN2ppyGoubteiueuwdycVh_yLLBPjg"
}
这些行包含分组帖子组结果的数据。
使用PHP和json_decode
我将其解压缩,创建两个表单来发送此分页数据并获取我的论坛中所有帖子的结果。
if($_REQUEST['action']=="page")
{
if($_REQUEST['mode']=="next")
{
$url_data_content_group=json_decode(file_get_contents("".$_REQUEST['feednext'].""));
}
if($_REQUEST['mode']=="previous")
{
$url_data_content_group=json_decode(file_get_contents("".$_REQUEST['feedprevious'].""));
}
}
else
{
$url_data_content_group=json_decode(file_get_contents("https://graph.facebook.com/".$id_group."/feed?access_token=".$access_token."&limit=10"));
}
<form action="" method="post">
<input type="submit" name="next" value="Next Posts">
<input type="hidden" name="action" value="page">
<input type="hidden" name="mode" value="next">
<input type="hidden" name="feednext" value="<?php print "".$url_data_content_group->paging->next."&limit=10";?>">
</form>
<form action="" method="post">
<input type="submit" name="previous" value="Previous Posts">
<input type="hidden" name="action" value="page">
<input type="hidden" name="mode" value="previous">
<input type="hidden" name="feedprevious" value="<?php echo "".$url_data_content_group->paging->previous."&limit=10";?>">
</form>
分页工作完美并向我展示了每10个结果,问题是当我使用之前的分页时,它没有显示10个结果(从直到)。相反,它总是把我送回第一篇帖子。
例如,如果我获得200个结果并推翻前一个,则不会显示190个结果,它会显示我的第一个帖子。
我尝试了很多东西并且总是得到相同的结果,我不知道API是否有问题或者我做错了什么
这里似乎发生了什么?
答案 0 :(得分:0)
分页信息似乎被打破了。在https://developers.facebook.com/bugs
提交错误暂时您可以使用until
和limit
参数并保留对上一次请求的引用
实施例
&until=1420134308
Page 2 &until=1420123958
Page 1 注意:您的应用令牌已从此问题中移除,请保密,否则有人可以完全控制您的应用