Twitterizer - 在执行GetAccessToken()时出现异常。

3

我的 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_token)如下:
OAuthTokenResponse token = OAuthUtility.GetAccessToken("XXX", "YYY", 
    oauth_token, oauth_verifier);
ViewBag.twToken = token.Token;

其中oauth_token和oauth_verifier是已赋值的变量。

当我获取访问令牌时,我的代码报错,异常信息如下:

System.ArgumentNullException:value不能为null

System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +12633595 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +224

Twitterizer.TwitterizerException.ParseRateLimitHeaders(WebResponse response) in

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

我已经在谷歌上搜索了这个问题,从我理解的情况来看,这个问题应该在版本2.1之后就已经解决了,但是我仍然遇到了这个问题。

我可以百分之百确认我的应用程序已经以Web应用程序的形式设置了。

2个回答

1

我从未使用过Twitterizer,但对Twitter API有经验,所以我会尝试解决它。

看起来你遇到的具体异常是Twitterizer中的一个错误,因为它试图将一个空字符串解析成数字,这是不允许的。现在,你遇到问题的真正原因可能在调用堆栈中显示。你可以看到,在出现异常之前,一个名为"ParseRateLimitHeaders"的方法正在执行。这让我相信,你正在连接到Twitter的oauth令牌目前已被限制。Twitter API中的速率限制在每个令牌大约超过250个API调用每小时时发生(至少半年前是这种情况)。

因此,我的建议是确保你尝试使用的令牌要么是你自己的(你可以轻松地从Twitter网站上获取一个),要么至少不是由一群其他人使用的,因为速率限制可能会非常快地设置。


这是正确的:这是Twitterizer最新版本中的一个错误。我已经修复了它。 - Ricky Smith

1

我看到过之前有这个bug,我不知道在最新的版本中是否已经修复,但是当时被广泛接受的解决方法是在Twitter开发网站上为你的Twitter应用程序放置一个正确的回调URL。

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


是的,我已经尝试过那种方式了,Twitter应用程序控制面板和OAuth请求中都设置了回调URL。 - hjeldin
你能展示一下用于通过 Twitter 进行身份验证的完整代码吗?我在 SharePoint Web 部件中完成了同样的操作,因此也许我可以看出你代码中的错误... - Tjassens
好的,我成功地解决了它。问题在于我正在刷新由第二个控制器调用的页面,而oauth_verifier不再有效。感谢大家的帮助! - hjeldin
这个答案是正确的,但有点误导人。是的,这是一个真正的 bug,并且已经在代码仓库中修复了,但设置回调函数并不是一种解决方法,而更多地是潜在问题的原因。这里的 bug 是一个次要问题,是由于您的应用程序注册不正确而引起的。 - Ricky Smith
你部分地说对了。问题不在回调函数上,而是由于重新传输后他的变量不再正确。这就是为什么我要求 hjeldin 检查他变量的内容。 - Tjassens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接