gpt4 book ai didi

php - Facebook 图形 API 循环通过分页

转载 作者:可可西里 更新时间:2023-11-01 12:36:31 26 4
gpt4 key购买 nike

所以我使用这个脚本来循环访问给定页面的事件。突然我发现它不再起作用了:(

我觉得这可能是一个错误,因为如果您选择任何页面,使用 access_token 查看事件,您将无法为“下一个”分页 URL 取回任何数据。例如尝试 https://graph.facebook.com/evenightclub/events在 apigee.com 中

有什么想法吗?

($fid是页面对象id)

    try {
$facebook = new Facebook(array(
'appId' => '<removed>',
'secret' => '<removed>',
));
$access_token = $facebook->getAccessToken();

$events_data = array();
$offset = 0;
$limit = 5000;
$params = array('access_token' => $access_token);

//fetch events from Facebook API
$data = $facebook->api("$fid/events/?limit=$limit&offset=$offset", $params);
$events_data = array_merge($events_data, $data["data"]);

//loop through pages to return all results
while(in_array("paging", $data) && array_key_exists("next", $data["paging"])) {
$offset += $limit;
$data = $facebook->api("$fid/events/?limit=$limit&offset=$offset", $params);
$events_data = array_merge($events_data, $data["data"]);
}}

最佳答案

您的代码对我有用,我唯一做的就是在将其与现有信息合并之前确保 count($data["data"]) > 0。所以它看起来像这样:

//loop through pages to return all results
while(in_array("paging", $data) && array_key_exists("next", $data["paging"])) {
$offset += $limit;
$data = $facebook->api("$fid/events/?limit=$limit&offset=$offset", $params);
// make sure we do not merge with an empty array
if (count($data["data"]) > 0){
$events_data = array_merge($events_data, $data["data"]);
} else {
// if the data entry is empty, we have reached the end, exit the while loop
break;
}
}}

关于php - Facebook 图形 API 循环通过分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com