Facebook API 提供活动,但不晚于 2019 年

问题描述 投票:0回答:1

自 2018 年以来,我一直使用 API 调用从 Facebook Graph API 加载事件。带有查询的非常直接的脚本。 Facebook 页面中有很多事件,查询会显示事件。只是 2019 年以后的事件除外。

当使用变量时:'time_filter=upcoming' 甚至什么也没有显示。

这是我使用的脚本。代币没问题。我还在 Graph Explorer 中检查了所有这些:https://developers.facebook.com/tools/explorer

Image of Graph 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();
php facebook events facebook-graph-api
1个回答
0
投票

截至 2023 年 9 月中旬,您用于事件的端点不再存在。我遇到了完全相同的问题,旧事件出现,但没有新事件出现。我不得不重新开发一个为慈善网站编写的插件,我设法与 Facebook 上的新页面合作。

一年多来,Facebook 一直在将页面转换为“新页面”。完成后,“事件”ZPI 端点将被完全删除并且不会返回。所以你开发的任何东西都必须重新开发。

话虽如此,“事件”API 端点已被弃用多年,并且在最近的版本中从未得到正式支持。消失只是时间问题。

这是我为让我的插件再次工作而所做的事情。您必须跳过几个圈。

  1. 使用 Graph API Explorer 生成页面访问令牌 https://developers.facebook.com/tools/explorer

  2. 使用资源管理器生成您的 API 端点 URL。

  3. 我使用 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>"

  4. 返回帖子列表后,我创建了一个数组,然后(通过代码)搜索它们以查找事件。这些被标记为“故事”,通常包含“已添加事件”或类似的内容。我基本上只是为此做了一个 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,
        );
    
      }
    }
    
  5. 我创建了这些事件的数组,然后使用“事件”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>"

  6. 返回事件数据后,您可以用它做任何您想做的事情。我用它创建了一个包含所有事件信息的新数组。

这可能不是最好的方法,但这是我弄清楚如何获取事件的唯一方法。 Facebook 没有记录任何此类情况,也没有提供获取活动的方法,而且他们也没有回复我的任何支持请求。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.