2011-05-17 159 views
2

我正在尝试使用API​​(如C#Facebook SDK)发布到facebook墙,而没有。我得到正确的访问令牌和所有这一切,但我发现了一个禁止使用403下面的代码:ASP.NET发布到Facebook墙壁

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(); 
} 

回答

1

你不应该张贴卷曲-F ......作为该职位的身体请求。 curl是一个命令行实用程序,允许您与http进行交互。您想发布到https://graph.facebook.com/ {graphId}/feed?access_token = {token},其中postData是“message =这是一个测试”,用它们的值替换括号中的内容。

+0

谢谢。我意识到curl是一个命令工具,我想也许它是在你将它作为参数传递之后被调用的。哦,不要猜测。非常感谢! – Didaxis 2011-05-17 01:46:11

+0

没问题,祝你好运 – 2011-05-17 21:11:02

+0

嘿..很好奇,如果你曾经把你的帖子发布到facebook墙上工作..如果是这样..想知道你是否可以分享你想出来的东西。 – jvcoach23 2013-05-09 19:35:22