自 2018 年以来,我一直使用 API 调用从 Facebook Graph API 加载事件。带有查询的非常直接的脚本。 Facebook 页面中有很多事件,查询会显示事件。只是 2019 年以后的事件除外。
当使用变量时:'time_filter=upcoming' 甚至什么也没有显示。
这是我使用的脚本。代币没问题。我还在 Graph Explorer 中检查了所有这些:https://developers.facebook.com/tools/explorer
/*
Facebook SDK
Facebook SDK
Facebook SDK
Facebook SDK
*/
$nowdate = strtotime(date('Y-m-d'));
$fb = new \Facebook\Facebook([
'app_id' => '****',
'app_secret' => '****',
'default_graph_version' => 'v17.0',
'default_access_token' => '****',
]);
try {
$response = $fb->get(
'/milesamersfoort/events?fields=id,start_time,name,description,cover,date&limit=200&since='.$nowdate,
_FB_TOKEN
);
} catch(FacebookExceptionsFacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$results = $response->getGraphEdge();
截至 2023 年 9 月中旬,您用于事件的端点不再存在。我遇到了完全相同的问题,旧事件出现,但没有新事件出现。我不得不重新开发一个为慈善网站编写的插件,我设法与 Facebook 上的新页面合作。
一年多来,Facebook 一直在将页面转换为“新页面”。完成后,“事件”ZPI 端点将被完全删除并且不会返回。所以你开发的任何东西都必须重新开发。
话虽如此,“事件”API 端点已被弃用多年,并且在最近的版本中从未得到正式支持。消失只是时间问题。
这是我为让我的插件再次工作而所做的事情。您必须跳过几个圈。
使用 Graph API Explorer 生成页面访问令牌 https://developers.facebook.com/tools/explorer
使用资源管理器生成您的 API 端点 URL。
我使用 feed 端点来获取最后 10 篇帖子的列表(使用 pager 参数)。
curl -i -X GET \ "https://graph.facebook.com/v18.0/<your page ID goes here>/feed?access_token=<your access token here>"
返回帖子列表后,我创建了一个数组,然后(通过代码)搜索它们以查找事件。这些被标记为“故事”,通常包含“已添加事件”或类似的内容。我基本上只是为此做了一个 if 语句:
foreach($fbposts as $post){
if($post->story == '<your page name> created an event.'){
$subject = $post->id;
$search = '<your page ID>_' ;
$trimmed_id = str_replace($search, '', $subject) ;
$new_ids[] = array(
'event_id' => $trimmed_id,
);
}
}
我创建了这些事件的数组,然后使用“事件”API 端点来查询每个事件。
curl -i -X GET \ "https://graph.facebook.com/v18.0/<your event ID here>?fields=name%2Cdescription%2Cstart_time%2Ccover&access_token=<your access token here>"
返回事件数据后,您可以用它做任何您想做的事情。我用它创建了一个包含所有事件信息的新数组。
这可能不是最好的方法,但这是我弄清楚如何获取事件的唯一方法。 Facebook 没有记录任何此类情况,也没有提供获取活动的方法,而且他们也没有回复我的任何支持请求。
希望有帮助!