这是我收到错误的行:
var requestToken = OAuthUtility.GetRequestToken(
_consumerKey,
_consumerSecret,
"http://mysite.com/Twitter/GetToken");
_consumerKey和_consumerSecret有适当的值。
堆栈追踪:
[ArgumentNullException:Value不能为null。 参数名称: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 C:\ Projects \ twitterizer-132 \ Twitterizer2 \ Exceptions \ TwitterizerException.cs中的Twitterizer.TwitterizerException.ParseRateLimitHeaders(WebResponse响应):200 C:\ Projects \ twitterizer-132 \ Twitterizer2 \ Exceptions \ TwitterizerException.cs中的Twitterizer.TwitterizerException..ctor(String message,Exception innerException):98 在C:\ Projects \ twitterizer-132 \ Twitterizer2 \ OAuth \ OAuthUtility.cs中的Twitterizer.OAuthUtility.GetRequestToken(String consumerKey,String consumerSecret,String callbackAddress):95 D:\ PROJECTS \ Brace \ v1 \ Brace.Twitter \ Tweeting.cs中的Brace.Twitter.Tweeting.GetRequestTokenUrl():18 D:\ PROJECTS \ Brace \ v1 \ Brace \ Controllers \ TwitterController.cs中的Brace.Controllers.TwitterController.GetToken(String oauth_token,String oauth_verifier):15 lambda_method(Closure,ControllerBase,Object [])+157 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object []参数)+17 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2 parameters) +208 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2个参数)+27 System.Web.Mvc。&lt;&gt; c_ DisplayClass15.b _12()+55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter过滤器,ActionExecutingContext preContext,Func1 continuation) +263 System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1个过滤器,ActionDescriptor actionDescriptor,IDictionary2 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__DisplayClass8
1.b__7(IAsyncResult )+12 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62 System.Web.Mvc。&lt;&gt; c _DisplayClasse.b_ d()+50 System.Web.Mvc.SecurityUtil.b _0(动作f)+7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)+22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+60 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)+9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+8963149 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+184
答案 0 :(得分:1)
这是我过分模糊的最佳尝试:这个错误实际上是另一个问题的症状。
很可能,您的应用程序(不是您的实际应用程序,而是向您提供控制台令牌的Twitter注册)未设置为Web应用程序。它们的形式具有误导性:当您选择Web应用程序时,它不会使回调网址成为必需,但它实际上是必需的。当您在没有回调网址的情况下保存应用时,它实际上将其保存为桌面应用。
桌面应用程序的问题是您无法使用回调网址。 Web应用程序可以使用基于PIN的身份验证,但桌面应用程序无法使用基于Web的身份验证。 (我确信这是一个很好的理由。)
因此,Twitter拒绝了您获取请求令牌的请求,因为您还提供了回调。
实际的例外是因为Twitterizer仍在寻找包含在每个(好的,好的,几乎每个)响应中的速率限制信息,即使是失败的请求也是如此。
我(最终)会解决这个问题,但它无法解决你的真正问题。