2013-02-06 28 views
2

我想下面的教程发布鸣叫到Twitter,但它不工作为它如何发布从asp.net应用程序鸣叫

http://www.dotnettutorials.com/tutorials/advanced/ASP-Twitter-Posting.aspx

是他们的另一种方式,或者一些能指点一个很好的教程,显示了如何使用toppost 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 */ 
    } 
} 
+1

解释_“它不工作”_ - 你有异常吗?而且我猜即使你*得到了一个你不会知道的异常,因为你在你的异常处理程序中没有做任何事情*** – Blachshma

+0

@Blachshma,它不会发布到twitter而不会产生任何错误。代码在没有任何错误的情况下执行而不发布任何东西 – Learning

+0

@KnowledgeSeeker,你有没有检查你的'catch'块的任何异常? – DON

回答

2

这是一个旧的辅导如Twitter基本身份验证年前弃用鸣叫。目前,您必须使用OAuth,这是Twitter在其OAuth Documentation中描述的。如果您不想编写自己的OAuth代码,则可以搜索第三方库,想到DotNetOpenAuth,或者使用可为您提供此功能的库,您可以在Twitter Libraries页面上找到它。

免责声明:我在Twitter图书馆页面上写了一个名为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告诉你什么。

+0

我使用的是Twitterizer2lite.dll它也不会工作它似乎使用OAuth,但我不知道我必须检查文档 – Learning

+0

@KnowledgeSeeker - 听起来像一个不同的在这里你的问题的主题。也许你可以用你正在尝试使用的新代码发布一个新问题,并且知道该库可能有帮助的人。我希望我的回答能帮助你解决你原来的问题。 –

相关问题