【问题标题】:"Error while reading message" when trying to obtain an OAuth request token尝试获取 OAuth 请求令牌时出现“读取消息时出错”
【发布时间】:2013-04-29 19:50:15
【问题描述】:

我正在尝试开发一个桌面应用程序来访问 Groundspeak 为 geocaching.com 公开的 API。 API 需要使用 OAuth。

在最终弄清楚我的消息签名被拒绝的原因之后(我必须对回调 URL 进行双重编码,在读到双重编码会导致问题的某个地方之后),我现在在尝试获取请求时收到来自 Groundspeak 的以下错误令牌:

oauth_error_message=Error%20while%20reading%20message%20%27DotNetOpenAuth.OAuth.Messages.UnauthorizedTokenRequest%27%20parameter%20%27oauth_callback%27%20with%20value%20%27http%253A%252F%252Fwww.mysite.com%252F%27.

不是一个非常具有描述性的错误消息。这里有什么问题? Groundspeak 在其服务器上使用 DotNetOpenAuth。似乎我的回调 URL 可能会导致一些问题,但我不知道是什么。

我可能还应该说我正在开发一个桌面应用程序,所以回调 URL 不是真的有效。它确实指向我拥有的网站,但该网站根本不知道 OAuth。如果我省略回调 URL,我会收到“回调 URL 不存在或无效”或类似错误。

【问题讨论】:

    标签: oauth


    【解决方案1】:

    我对 Groundspeak 一无所知,但我猜他们要求您在使用 OAuth 之前注册应用的回调 URL。至少 Google 和 Microsoft 使用他们的 OAuth API 做到了这一点。在 Groundspeak 上寻找某种开发者设置。

    【讨论】:

    • 我在他们的论坛上问过这个问题,但没有看到答案。我也在那里找不到像开发人员选项这样的东西。在其他帖子中,我从未见过有关注册回调 URL 的任何内容。不幸的是,由于无法确认这一点,我无法接受……不过,如果/当我可以的话,我会接受的:)
    【解决方案2】:

    这绝对是未来需要进一步定义的东西:用于非 Web 应用程序的 OAuth。但似乎确实有一些可能的解决方案(不是最干净的),您可以尝试让 OAuth 在桌面应用程序中工作。您可以查看下面有一些工作解决方案的文章(我自己没有测试过)。它基于 Google 处理已安装桌面应用程序 OAuth 的可行解决方案:

    https://developers.google.com/accounts/docs/OAuthForInstalledApps

    链接到可能的解决方案:

    http://blog.appharbor.com/2012/06/21/oauth-for-net-desktop-applications

    这里还有一篇关于 SO for desktop app OAuth 的相关文章:OAuth for Desktop apps?

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2011-10-25
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2013-12-04
      • 2021-11-04
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多