【问题标题】:ASP.NET Post to Facebook WallASP.NET 发布到 Facebook 墙
【发布时间】:2013-03-19 19:56:30
【问题描述】:

我正在尝试发布到 Facebook 墙上,没有使用 API,例如 C# Facebook SDK。我正确地获得了访问令牌和所有这些,但我使用以下代码获得了 403 禁止:

protected string postToWall()
{
    var accessToken = Session["_FB_ACCESS_TOKEN"];
    var graphId = Session["_FB_USER_GRAPH_ID"];

    var url = string.Format(
        "https://graph.facebook.com/{0}/feed",
        graphId
    );

    var req = WebRequest.Create(url);
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";

    string postData = string.Format(
        @"curl -F 'access_token={0}' -F 'message=This is a test...' https://graph.facebook.com/{1}/feed",
        accessToken,
        graphId
    );

    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    var stream = req.GetRequestStream();
    stream.Write(byteArray, 0, byteArray.Length);
    stream.Close();

    WebResponse response = req.GetResponse();
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    stream = response.GetResponseStream();
    StreamReader reader = new StreamReader(stream);

    return reader.ReadToEnd();
}

【问题讨论】:

    标签: c# asp.net facebook


    【解决方案1】:

    您不应该将 curl -F... 作为发布请求的正文发布。 curl 是一个命令行实用程序,可让您与 http 进行交互。您想发布到https://graph.facebook.com/{graphId}/feed?access_token={token},其中postData 是“message=This is a test”,用它们的值替换括号中的内容。

    【讨论】:

    • 谢谢。我意识到 curl 是一个命令实用程序,我认为它可能是在您将它作为参数传递后调用的。哦,好吧,猜不到。非常感谢!
    • 嘿.. 很好奇你是否曾经把你的帖子放到 facebook 墙上工作.. 如果是这样.. 想知道你是否可以分享你的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    相关资源
    最近更新 更多