尝试OAuth到Twitter并返回到http:// Localhost:port

Pur*_*ome 7 .net twitter oauth localhost

我正在尝试OAuth到Twitter,然后它返回我们的localhost:port(例如http:// localhost:6969).

我也在尝试使用Linq2Twitter.当我尝试在Twitter上设置我的应用程序时,它不允许我设置

  1. 申请网站.
  2. 网站.
  3. 回调网址.

http:// localhost:6969

那么,我如何针对我的localhost开发机器进行twitter OAuth?

编辑:我暗地希望AArnott会发现/阅读这篇文章:)

编辑2:

现在安德鲁发表了他的想法,我正在添加更多信息,以便对此回复进行更多澄清.

所以,如果这是示例代码(不是我的btw,但有些雇用枪,在这里工作)重定向到SP(这是Twitter,在这种情况下......)

public void StartOAuthAuthorize()
{
    string link = twitterContext.GetAuthorizationPageLink(false, false);
    var uri = new Uri(link);
    NameValueCollection urlParams = HttpUtility.ParseQueryString(uri.Query);
    OAuthToken = urlParams["oauth_token"];

    HttpContext.Current.Session["twitterService"] = this;
    HttpContext.Current.Response.Redirect(link);
}
Run Code Online (Sandbox Code Playgroud)

这将是我将劫持回调网址的地方....?

And*_*ott 2

答案可能会让你大吃一惊...

为您的 oauth 客户端注册页面提供 Twitter 允许的任何回调 URI(可能是您想象在生产中使用的 URL)。

当您发送 OAuth 未经授权的令牌请求时,您可以选择当时提供回调 URL,Twitter 更愿意使用该回调 URL。那时你可以提供 localhost 并且它工作得很好。

由于您使用的是 LinqToTwitter(它内部使用 DotNetOpenAuth),因此当您向 SP 发出授权请求时无需指定“localhost”。DotNetOpenAuth 自动发现您位于本地主机并发送该回调 URI。

更新:并确保您正在运行最新版本的 LinqToTwitter(至少更改集 56159...比版本 v1.11 更新)。否则,您使用的是 OAuth 1.0,并且 Twitter 会忽略 OAuth 1.0 客户端授权请求中发送的回调 URL。