我正在尝试按照教程向Twitter发布推文,但它不适用于它
http://www.dotnettutorials.com/tutorials/advanced/ASP-Twitter-Posting.aspx
是他们的另一种方式还是有些可以指向我一个很好的教程,展示如何使用asp.net C#web应用程序发送推文
protected void Button1_Click(object sender, EventArgs e)
{
string username = "YOUR_USER_NAME";
string password = "YOUR_PASSWORD";
string tweet = TextBox1.Text;
try
{
string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
byte[] bytes = System.Text.Encoding.ASCII.GetBytes("status=" + tweet);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");
request.Method="POST";
request.ServicePoint.Expect100Continue = false;
request.Headers.Add("Authorization", "Basic " + user);
request.ContentType="application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;
Stream reqStream = request.GetRequestStream();
reqStream.Write(bytes, 0, bytes.Length);
reqStream.Close();
}
catch (Exception ex)
{
/* DO NOTHING */
}
}
答案 0 :(得分:2)
这是一个旧教程,因为Twitter几年前就弃用了基本身份验证。现在,您必须使用Twitter在其OAuth Documentation中描述的OAuth。如果您不想编写自己的OAuth代码,可以搜索第三方库,想到DotNetOpenAuth,或使用为您执行此操作的库,您可以在Twitter Libraries页面上找到它。 / p>
免责声明:我在Twitter Libraries页面上编写了一个名为LINQ to Twitter的库。
注意:您将要定位Twitter API v1.1,因为Twitter API v1.0现已弃用,并将在下个月关闭。
我也注意到你似乎很难弄清问题是什么。我最好的猜测是,您正在从Twitter收到HTTP 401 Unauthorized响应。如果您对请求调用了GetResponse(),则此401响应将导致引发异常,但这不会发生在您的代码中,因为您只是在推送请求。您应该调用GetResponse以确保您了解Twitter对您的代码的反应。然后,您可以在catch块上找到一个断点或记录响应以查看问题所在 - 有时您必须检查异常的字段以获取更多信息。另一个很好的调试工具是Fiddler,它可以让你检查来自Twitter的响应。 FireBug和IE F12工具是其他选项(可能还有更多),但目标是看看Twitter告诉你什么。