3

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

我在第一个 Controller 操作中有这些简单的 2 行:

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:值不能为空

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 响应) 在

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

我已经用谷歌搜索了这个问题,据我所知,它自 2.1 版以来已经解决,但我仍然有它。

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

4

2 回答 2

1

我从未使用过 Twitterizer,但确实有使用 Twitter API 的经验,所以我会尝试一下。

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

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

于 2011-11-07T18:43:32.930 回答
1

我读到这是以前发现的错误。我不知道它是否在最新版本中得到修复,但当时接受的解决方法是在 twitter开发站点上的twitter 应用程序中放置正确的回调 url。

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

于 2011-11-07T19:35:31.553 回答