c# - (OAuthException - #200)(#200)未发布的帖子必须作为页面本身发布到页面

标签 c# asp.net facebook facebook-graph-api

<分区>

我在下面编写了将单张照片发布到 FB 页面的函数。但是收到错误提示“(OAuthException - #200) (#200) 未发布的帖子必须作为页面本身发布到页面。”

private void postToFBPage()
{
    string app_id = ConfigurationManager.AppSettings["FBAppKey"];
    string app_secret = ConfigurationManager.AppSettings["FBSecretKey"];
    string scope = ConfigurationManager.AppSettings["FBPermission"];
    string access_token;

    if (Session["access_token"] == null)
        access_token = getAccessToken();
    else
        access_token = Session["access_token"].ToString();

        var client = new FacebookClient(access_token);
        List<string> imgs = (List<string>)Session["local_processedImgs"];

        DateTime dt=new DateTime(Convert.ToInt32(ddlYear.SelectedValue)
                                ,Convert.ToInt32(ddlMonth.SelectedValue)
                                ,Convert.ToInt32(ddlDate.SelectedValue)
                                ,Convert.ToInt32(ddlHour.SelectedValue)
                                ,Convert.ToInt32(ddlMin.SelectedValue)
                                ,0);

        double UTC = Facebook.DateTimeConvertor.ToUnixTime(dt);

        dynamic post = null;
        dynamic parameters = new ExpandoObject();
        parameters.source = new FacebookMediaObject
        {
            ContentType = "image/" + Path.GetExtension(imgs[0]),
            FileName = imgs[0]
        }.SetValue(File.ReadAllBytes(imgs[0]));
        parameters.message = CKEditor1.Text;
        parameters.scheduled_publish_time = UTC;
        parameters.published = false;
        parameters.scope = scope;

        try
        {
            post = client.Post("/" + ddlFBPage.SelectedValue + "/photos" , parameters);
        }
        catch (Exception ex)
        {
            //error
        }
}

请帮我解决这个问题。

--

问候

迪帕克莱

最佳答案

我自己弄的。有多种类型的 token 。在我上面的代码中,我传递的是“用户访问 token ”,而我必须传递“页面访问 token ”。要生成“页面访问 token ”,请使用以下 URL 的 get 方法:

string url = string.Format(
    "https://graph.facebook.com/{0}?fields=access_token&access_token={1}",
    pageID, user_access_token);

希望这会有所帮助:)

关于c# - (OAuthException - #200)(#200)未发布的帖子必须作为页面本身发布到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368099/

相关文章:

c# - 如何解决协变数组转换?

html - ASP.NET - 母版页 CSS 显示不正确

c# - 以编程方式创建动画位图图像

javascript - 如何获取点击的菜单详情

c# - 操纵形式. Action

ruby-on-rails - 使用 Rails 实现 facebook-OmniAuth

ios - ReplayKit分享视频到facebook没有评论

ios - 有什么方法可以使用最新的 Fb 获得 Facebook read_stream 权限吗?

C# 读取固定长度文件 - 修剪值中的空间

c# - 将 JSON 对象传递给 MVC Controller 时,string.empty 转换为 null