Facebook应用程序在Facebook页面上发布

时间:2014-04-10 22:23:02

标签: c# facebook facebook-graph-api facebook-javascript-sdk facebook-c#-sdk

我希望我的Facebook应用程序在我的Facebook页面中创建活动。使用我的应用程序的每个人都可以将事件发布到我的Facebook页面,所以我不想给每个人提供管理员或贡献者,我希望我的网络应用程序(appId +密码)有权发布< / p>

当我尝试这个时:

client.AccessToken = "{app-id}|{app-secret}";
dynamic result = client.Post("/{page-id}/events", new{
                    name = "testEvent",
                    start_time = "2014-04-11T19:00:00-0700",
                    end_time = "2014-04-11T20:00:00-0700",
                }
);

我收到此错误

{
  "error": {
    "type": "Exception", 
    "message": "You must be an admin of the specified page to perform the requested action.", 
    "code": 1373019
  }
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您应该执行以下操作:

  1. 通过/me/accounts端点获取页面访问令牌(已记录的 在用户必须是此页面的管理员)。你可以通过这样做 https://developers.facebook.com/tools/explorer?method=GET&path=me%2Faccounts请务必事先请求manage_pagescreate_eventpublish_stream权限。

  2. 将您短暂的页面访问令牌交换为非过期的页面访问令牌,如下所述: What are the Steps to getting a Long Lasting Token For Posting To a Facebook Fan Page from a Server

  3. 在您的应用中使用新生成的页面访问令牌

答案 1 :(得分:0)

您正在使用的令牌称为应用访问令牌,根据/{page-id}/events的文档,它说:

  

需要create_event权限的页面的页面访问令牌

现在获取页面访问令牌 -

  1. 首先,您需要通过添加权限重新验证用户(通过再次调用facebook login / auth):

      获取页面访问令牌所需的
    • manage_pages
    • 创建活动所需的
    • create_event
  2. 然后拨打电话:

    \GET /{page-id}?fields=access_token,您将获得页面访问令牌作为回应。

  3. 使用在步骤2中生成的令牌进行正在进行的通话,然后就会成功。

    <子> (如果需要,您还可以扩展永不过期的页面访问令牌 - see here
    详细了解访问令牌here