5

我正在尝试开发一个桌面应用程序来访问由 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 不存在或无效”或类似的错误。

4

2 回答 2

1

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

于 2013-05-08T11:59:31.290 回答
0

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

希望这可以帮助!

于 2013-05-09T18:01:54.433 回答