提问人:Aleks 提问时间:9/22/2023 最后编辑:Aleks 更新时间:10/18/2023 访问量:90
Facebook API 提供活动,但不迟于 2019 年
Facebook API give Events, but not later then 2019
问:
自 2018 年以来,我一直使用 API 调用从 Facebook Graph API 加载事件。带有查询的非常简单的脚本。在 Facebook 页面中有很多事件,查询显示事件。只是没有 2019 年之后的事件。
当使用变量时:“time_filter=即将到来”,甚至什么都没有显示。
这是我使用的脚本。代币没问题。我还在 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 端点已被弃用多年,并且在最近的版本中从未得到官方支持。它消失只是时间问题。
这是我为让我的插件再次工作所做的。你必须跳过几个箍。
使用图形 API 资源管理器生成页面访问令牌 https://developers.facebook.com/tools/explorer
使用资源管理器生成 API 终端节点 URL。
我使用提要端点获取最近 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没有记录任何这些内容,也没有提供获取活动的方法,他们也没有回应我的任何支持票。
我希望这会有所帮助!
评论