1

我正在尝试以页面名称向页面添加事件。我是该页面的管理员,我发现了很多关于该主题的内容,但是,无论我做什么,它都以 PHP Exception 结尾:

未捕获的异常:您必须是指定页面的管理员才能执行请求的操作。

我可以在我自己的个人资料中使用我的应用程序添加事件。所以,我认为问题在于访问令牌。我尝试了几种方法,但对我来说最好的方法似乎是:

  1. 打开图形 API 资源管理器
  2. 选择我的应用
  3. 请求具有 manage_pages、publish_actions、publish_stream、create_event 权限的新访问代码
  4. 请求 /me/accounts
  5. 从我要发布的页面获取 access_token 并在我的脚本中使用它

我的测试脚本,适用于我自己的个人资料:

require 'src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => $APPLICATION_ID,
  'secret' => $APPLICATION_SECRET,
  'cookie'     => false,
  'fileUpload' => true
));

$event_id = 0;
$event_name = "New Event API Test Event";
$event_start = '2013-12-04';
$event_privacy = "OPEN";

$ret_obj = $facebook->api('/'.$page_id.'/events?access_token='.$access_token, 'POST', 
array(
   'name' => $event_name,
   'start_time' => $event_start,
   'privacy_type' => $event_privacy,
   'location_id' => $location_id
));

if(isset($ret_obj['id'])) {
  echo 'Event with added. ID: ' . $ret_obj['id'];
} else {
  echo 'Couldn\'t create event';
}

我做错了什么?

4

2 回答 2

1

您需要一个页面访问令牌。

页面访问令牌——这些访问令牌类似于用户访问令牌,不同之处在于它们向 API 提供读取、写入或修改属于 Facebook 页面的数据的权限。要获取页面访问令牌,您需要首先获取用户访问令牌并请求manage_pages权限。获得用户访问令牌后,您就可以通过 Graph API 获得页面访问令牌。

文档:https ://developers.facebook.com/docs/facebook-login/access-tokens/

然后用于GET /me/accounts获取与您的页面关联的访问令牌。

于 2013-10-17T11:52:43.740 回答
0

我在如何使用 Graph API 以编程方式将事件添加到页面中找到了解决方案?. 我必须将 access_token 直接添加到事件数组中,一切都按预期工作:

    $ret_obj = $facebook->api('/'.$page_id.'/events', 'POST',
      array(
        'access_token' => $access_token,
        'name' => $event_name,
        'start_time' => $event_start,
        'privacy_type' => $event_privacy,
        'location_id' => $location_id
     ));

谢谢您的帮助!

于 2013-10-18T07:14:28.067 回答