5

geocaching.com の Groundspeak によって公開された 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 は実際には有効ではありません。それは私が所有する Web サイトを指していますが、その Web サイトは 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 を処理するための Google の実行可能なソリューションに基づいています。

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

考えられる回避策へのリンク:

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

また、デスクトップ アプリ OAuth の SO に関する関連記事: OAuth for Desktop apps?

お役に立てれば!

于 2013-05-09T18:01:54.433 に答える