【问题标题】:Twitterizer - Exception while GetAccessToken()Twitterizer - GetAccessToken() 时出现异常
【发布时间】:2011-12-23 19:47:53
【问题描述】:

我的 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& 数字, NumberFormatInfo 信息, 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% 确定我的应用程序设置为网络应用程序。

【问题讨论】:

    标签: c# api twitter oauth twitterizer


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我已经尝试过了,回调 url 都是在 twitter 的应用程序控制面板和 OAuth 请求中设置的。
    • 您能否向我们展示使用 twitter 进行身份验证的完整代码。我在 SharePoint webpart 中也做过同样的事情,所以也许我可以在您的代码中看到错误...
    • 好的,我设法让它工作了。问题是我正在刷新第二个控制器调用的页面,并且 oauth_verifier 不再有效。感谢大家的帮助!
    • 这个答案是正确的,但有点误导。是的,这是一个真正的错误,并且已在代码存储库中修复,但设置回调并不是真正的解决方法,因为它是潜在问题的原因。这里的错误是由于您的应用程序注册不正确而导致的次要问题。
    • 你说对了一部分。问题不是回调,而是他的变量在回发后不再正确。这就是为什么我让 hjeldin 检查他的变量的内容。
    【解决方案2】:

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

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

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

    【讨论】:

    • 这是正确的:这是 Twitterizer 最新版本中的一个错误。我已经修好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 2013-03-08
    • 2014-09-25
    • 1970-01-01
    • 2021-03-31
    • 2018-01-31
    相关资源
    最近更新 更多