7

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

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

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

成为http://localhost:6969

那么,我怎样才能对我的本地主机开发机器进行 twitter OAuth 呢?

编辑:我暗暗希望AArnott能找到/阅读这篇文章 :)

编辑2:

既然 Andrew 发表了他的想法,我将添加更多信息以进一步澄清此回复。

因此,如果这是示例代码(不是我的顺便说一句,而是一些雇用的枪,在这里工作)重定向到 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);
}

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

4

2 回答 2

2

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

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

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

由于您使用的是内部使用 DotNetOpenAuth 的 LinqToTwitter,因此在向 SP 发出授权请求时无需指定“localhost”。DotNetOpenAuth 自动看到您在 localhost 上并发送该回调 URI。

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

于 2009-08-07T01:46:30.833 回答
2

甚至我也遇到了 401 错误.. 但它已解决.. 在将您的应用程序注册到 twitter 期间,您需要提供回调 url ......比如http://localhost:8080

我已经使用 java 完成了这个......所以我的代码是: String CallbackURL="http://localhost:8080/tweetproj/index.jsp"; provider.retrieveRequestToken(consumer,CallbackURL);

其中 tweetproj 是我的项目名称,而 index.jsp 只是一个 jsp 页面......

希望这可以帮助你...

于 2010-11-26T12:31:13.880 回答