C# Twitterizer-GetAccessToken()时发生异常

C# Twitterizer-GetAccessToken()时发生异常,c#,api,twitter,oauth,twitterizer,C#,Api,Twitter,Oauth,Twitterizer,我的twitterizer版本是2.3.3.21964(从nuget加载) 在第一个控制器操作中,我有以下两行代码: token = OAuthUtility.GetRequestToken("XXX", "YYY", "http://test.roadevents.it/account/twitter_token",null); return Redirect("http://twitter.com/oauth/authorize?oauth_token=" + token.Token

我的twitterizer版本是2.3.3.21964(从nuget加载)

在第一个控制器操作中,我有以下两行代码:

token = OAuthUtility.GetRequestToken("XXX", "YYY",
    "http://test.roadevents.it/account/twitter_token",null);
return Redirect("http://twitter.com/oauth/authorize?oauth_token=" + token.Token);
第二个控制器操作(twitter_令牌)是:

其中oauth_令牌和oauth_验证器是价值化变量。 获取访问令牌时我的代码中断,但出现以下异常:

System.ArgumentNullException:值不能为null

System.Number.stringtonNumber(字符串str,NumberStyles选项, NumberBuffer&number,NumberFormatInfo信息,布尔值(十进制) +12633595 System.Number.ParseInt32(字符串s,NumberStyles样式,NumberFormatInfo)+224

Twitterizer.TwitterizerException.ParseRateLimitHeaders(WebResponse 回应)在

C:\Projects\twitterizer-132\Twitterizer2\Exceptions\TwitterizerException.cs:205

我在谷歌上搜索过这个问题,据我所知,这个问题从2.1版开始就已经解决了,但我仍然有它


我100%确定我的应用程序设置为web应用程序。

我从未使用Twitterizer,但确实有使用TwitterAPI的经验,因此我将尝试一下

看起来您遇到的特定异常是Twitterizer中的一个bug,因为它试图将一个null字符串解析为一个数字,一个no no。现在,可能是问题的真正原因显示在调用堆栈中。您可以看到,在异常发生之前,正在执行一个名为“ParseRateLimitHeaders”的方法。这会让我相信,您连接到Twitter的oauth令牌目前的费率是有限的。每当一个令牌在一个小时内超过大约250个API调用时,Twitter API就会进行速率限制(至少半年前是这样)


因此,我的建议是确保你尝试使用的令牌是你自己的(你可以很容易地从Twitter网站上为你的应用程序获得一个令牌),或者至少没有被其他人使用,因为可以很快设置速率限制。

我读到这是以前发现的一个bug。我不知道它是否在最新版本中得到了修复,但当时公认的解决办法是在twitter开发站点上的twitter应用程序中设置一个正确的回调url


我建议您调试应用程序,检查所有变量是否都填充了正确的数据。也许你能找到其他可以帮助我们的东西;)

是的,我已经试过了,这两个回调url都是在twitter的应用程序控制面板和OAuth请求中设置的。你能给我们展示一下使用twitter进行身份验证的完整代码吗。我在SharePoint Web部件中也做了同样的操作,所以也许我可以看到您代码中的错误…好的,我成功地使它工作了。问题是我正在刷新第二个控制器调用的页面,而oauth_验证器不再有效。谢谢大家的帮助!这个答案是正确的,但有点误导。是的,这是一个真正的bug,并且已经在代码存储库中修复了,但是设置回调并不是一个真正的解决方法,因为它是潜在问题的原因。这里的bug是第二个问题,是由于您的应用程序注册不正确而导致的。您部分是对的。问题不在于回调,而是他的变量在回发后不再正确。这就是为什么我要求hjeldin检查他的变量的内容。这是正确的:这是Twitterizer上一版本中的一个bug。我已经修好了。
OAuthTokenResponse token = OAuthUtility.GetAccessToken("XXX", "YYY", 
    oauth_token, oauth_verifier);
ViewBag.twToken = token.Token;