更新Facebook页面发布的字段

时间:2013-09-23 22:45:20

标签: c# facebook facebook-graph-api

我正在开发一个应用程序(其中一部分)将管理用户及其帖子的页面。用户可以创建帖子并选择是否发布帖子。我可以创建帖子并完美地将'已发布'字段设置为true。问题是:当我尝试通过http POST请求将帖子的'is_published'字段从false设置为true。视频和链接类型后期工作完美,但状态和照片不起作用。可能是什么问题?

    public dynamic PublishPost(string postId)
    {
        dynamic parameters = new ExpandoObject();

        parameters.is_published = 1;

        try
        {
            return FacebookClient.Post(string.Format("/{0}", postId), parameters);

        }
        catch (Exception e)
        {
            return null;
        }

    }

1 个答案:

答案 0 :(得分:0)

使用创建帖子时返回的帖子ID,可以更新未发布/预定的帖子。我们在此类帖子上支持两种类型的更新:

  • 发布以前未发布的帖子。 (不发布帖子不是 支持)
  • 更改计划(即重新安排,将计划添加到 未发布的帖子,从帖子中删除日程表从而制作它 未公布的)。

要将现有帖子从未发布更新为已发布,只需通过API调用将is_published参数设置为true即可。

请参阅: https://developers.facebook.com/docs/reference/api/page/#unpub_scheduled_posts


帖子的参数是published 请参阅: 照片页面发布 https://developers.facebook.com/docs/reference/ads-api/unpublished-page-posts/

curl -F 'message=Book your trip to Alaska, http://bit.ly/alaska'\
     -F 'source=@alaska.jpg'\
     -F 'published=0'\
     -F 'access_token=PAGE_TOKEN'\
  https://graph.facebook.com/{page_id}/photos

<强>尝试:

public dynamic PublishPost(string postId)
{
    dynamic parameters = new ExpandoObject();

    parameters.is_published = "true";

    try
    {
        return FacebookClient.Post(string.Format("/{0}", postId), parameters);

    }
    catch (Exception e)
    {
        return null;
    }

}