1

这是我收到该错误的行:

var requestToken = OAuthUtility.GetRequestToken(
    _consumerKey, 
    _consumerSecret, 
    "http://mysite.com/Twitter/GetToken");

_consumerKey 和 _consumerSecret 具有正确的值。

堆栈跟踪:

[ArgumentNullException:值不能为空。参数名称:String] System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9585854 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119 Twitterizer.TwitterizerException.ParseRateLimitHeaders (WebResponse 响应)在 C:\Projects\twitterizer-132\Twitterizer2\Exceptions\TwitterizerException.cs:200 Twitterizer.TwitterizerException..ctor(String message, Exception innerException) 在 C:\Projects\twitterizer-132\Twitterizer2\Exceptions\ TwitterizerException.cs:98 Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress) 在 C:\Projects\twitterizer-132\Twitterizer2\OAuth\OAuthUtility.cs:95 Brace.Twitter.Tweeting。2 parameters) +208 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2个参数) +27 System.Web.Mvc.<>c_ DisplayClass15.b _12() +55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 continuation) +263 System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +191 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 System.Web.Mvc.Controller.ExecuteCore() +116 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 System.Web.Mvc.Async.<>c__DisplayClass81.b__7( IAsyncResult ) +12 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 System.Web.Mvc.<>c _DisplayClasse.b_ d() +50 System.Web.Mvc.SecurityUtil.b_0(动作 f)+7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(动作动作)+22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+60 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler .EndProcessRequest(IAsyncResult 结果) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8963149 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

4

1 回答 1

1

这是我过于模糊的最佳尝试:这个错误实际上是另一个问题的症状。

您的应用程序(不是您的实际应用程序,而是向您提供控制台令牌的 Twitter 注册)很可能没​​有设置为 Web 应用程序。它们的形式具有误导性:当您选择 Web 应用程序时,它并没有要求回调 url,但它实际上是必需的。当您在没有回调 url 的情况下保存应用程序时,它实际上将其保存为桌面应用程序。

桌面应用程序的问题是您不能使用回调 url。Web 应用程序可以使用基于 pin 的身份验证,但桌面应用程序不能使用基于 Web 的身份验证。(我确信有一个非常好的理由。)

因此,twitter 拒绝了您获取请求令牌的请求,因为您还提供了回调。

实际的例外是因为 Twitterizer 仍在寻找包含在每个(嗯,好的,几乎每个)响应中的速率限制信息,即使是来自失败的请求。

我会(最终)解决这个问题,但它不会解决你真正的问题。

于 2011-10-31T19:50:46.197 回答