C# 使用c向twitter发布状态更新#

C# 使用c向twitter发布状态更新#,c#,twitter,C#,Twitter,我能找到的每一个例子要么非常过时,要么总是回来。 任何人都可以提供一个向twitter发布状态更新的工作示例吗 即使下面的方法也总是失败。 我被重定向到twitter——太好了。我可以确认访问代码是正确的,并且与我的应用程序匹配,但是在实际发布更新时,错误是未知的 这里到底出了什么问题?无论我使用什么应用程序或哪个twitter帐户 使用Twitteriser2.dll if (Request["oauth_token"] == null) { OAuth

我能找到的每一个例子要么非常过时,要么总是回来。 任何人都可以提供一个向twitter发布状态更新的工作示例吗

即使下面的方法也总是失败。 我被重定向到twitter——太好了。我可以确认访问代码是正确的,并且与我的应用程序匹配,但是在实际发布更新时,错误是未知的

这里到底出了什么问题?无论我使用什么应用程序或哪个twitter帐户

使用Twitteriser2.dll

if (Request["oauth_token"] == null)
        {
            OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(
                oauth_consumer_key,
                oauth_consumer_secret,
                Request.Url.AbsoluteUri);

            Response.Redirect(string.Format("http://twitter.com/oauth/authorize?oauth_token={0}",
                reqToken.Token));
        }
        else
        {
            string requestToken = Request["oauth_token"].ToString();
            string pin = Request["oauth_verifier"].ToString();

            var tokens = OAuthUtility.GetAccessToken(
                oauth_consumer_key,
                oauth_consumer_secret,
                requestToken,
                pin);

            OAuthTokens accesstoken = new OAuthTokens()
            {
                AccessToken = tokens.Token,
                AccessTokenSecret = tokens.TokenSecret,
                ConsumerKey = oauth_consumer_key,
                ConsumerSecret = oauth_consumer_secret
            };

            TwitterResponse<TwitterStatus> response = TwitterStatus.Update(
                accesstoken,
                "Testing!! It works (hopefully).");

            if (response.Result == RequestResult.Success)
            {
                Response.Write("we did it!");
            }
            else
            {
                Response.Write("it's all bad.");
            }
        }
if(请求[“oauth_令牌”]==null)
{
OAuthTokenResponse reqToken=OAuthUtility.GetRequestToken(
oauth_消费者_密钥,
oauth_消费者_机密,
Request.Url.AbsoluteUri);
Response.Redirect(string.Format(“http://twitter.com/oauth/authorize?oauth_token={0}",
请求令牌(Token.Token));
}
其他的
{
string requestToken=Request[“oauth_token”].ToString();
字符串pin=Request[“oauth_验证程序”].ToString();
var tokens=OAuthUtility.GetAccessToken(
oauth_消费者_密钥,
oauth_消费者_机密,
请求令牌,
针);
OAuthTokens accesstoken=新的OAuthTokens()
{
AccessToken=tokens.Token,
AccessTokenSecret=tokens.TokenSecret,
ConsumerKey=oauth_consumer_key,
ConsumerCret=oauth\u consumer\u secret
};
TwitterResponse=TwitterStatus.Update(
accesstoken,
“测试!!它能工作(希望如此)。”;
if(response.Result==RequestResult.Success)
{
回答。写下(“我们做到了!”);
}
其他的
{
回答。写下(“一切都很糟糕。”);
}
}

TwitterRepsonse对象具有“ErrorMessage”属性。你可能应该先看看里面的信息,给你一些指导。

为什么不使用Tweetinvi呢。Tweetinvi将允许您在一行中发布,并在一行中获取错误消息。这里有一个例子

TwitterCredentials.SetCredentials("Access_Token", "Access_Token_Secret", "Consumer_Key", "Consumer_Secret");
var tweet = Tweet.PublishTweet("Hello!");

if (tweet == null)
{
    var exceptionDetails = ExceptionHandler.GetLastException().TwitterExceptionInfos.First().Message;
}
您可以在此处找到文档:

另外,还可以看看您是否将其与ASP.NET一起使用。

最终使其正常工作。
这个错误并不是完全已知的,因为我不需要改变代码,但是我做的是重新下载Twitter和建立它(需要添加C++的组件作为理由)。然后它就起作用了,所以我只能看到它在第一轮时有某种缺陷。

不幸的是,你可能很难得到答案。老实说,社交网络讨厌这种自动化,Pinterest几乎不可能登录和发布。您可能需要寻找更好的解决方案,如Selenium或PhantomJS。Twitter为这类事情提供了API和文档。在这种情况下,您必须找到一种方法来截获来自Twitter的响应。我有两个建议。首先:下载Twitterizer源代码并将其编译到您的应用程序中,然后逐步浏览Twitterizer源代码,直到找到收到响应的位置,并查看Twitter实际上在说什么。这可能是你最好的选择。另一种选择是使用类似Fiddler的工具捕获http响应,并以这种方式查看。