0

OAuth2.0 を使用して Google カレンダー API の Google 認証を必要とするデスクトップ プロジェクトに取り組んでいます。使用言語はjavaです。

現在、プロジェクトを承認するには、java.swt.Desktop.getDesktop().browse(url) を使用してブラウザーを開き、[承認] ボタンをクリックして、リダイレクトされたページの承認コードをコピーし、アプリケーションに貼り付ける必要があります。また、ユーザーは Web ページを手動で閉じる必要があります。かなり面倒。

この認証手順を達成するための、より優れた、よりユーザーフレンドリーなアプローチはありますか? 私が達成したい最終的な手順は、アプリケーションが承認ページを開き、ユーザーが「同意する」をクリックし、ページが自動的に閉じてソフトウェアが承認されることだけです。この種の手順は、他のアプリケーションで見たことがあります。これを達成する方法がわからないだけです。

前もって感謝します。

4

1 に答える 1

0

callbackURL を指定する必要があります。これを実現するには、Scribeなどの Java ライブラリを使用することをお勧めします。開始ページと例が豊富に用意されています。

EDIT 1
コールバック URL を設定するサンプルを次に示します。

String apiKey = "your_app_id";
String apiSecret = "your_api_secret";
OAuthService service = new ServiceBuilder()
                          .provider(FacebookApi.class)
                          .apiKey(apiKey)
                          .apiSecret(apiSecret)
                          .callback("myApp://oauthcallback")
                          .build();

デスクトップ アプリで組み込みブラウザーを開き、OAuthService によって指定された oauth URL に移動する必要があります。ユーザーがアプリを承認すると、組み込みブラウザーがコールバック URI にリダイレクトされます。これを検出し、コールバックに含まれる oauth 情報を抽出する必要があります。

デスクトップアプリケーションでこれを行ったことはありません(常にサーブレット/jsp - Webアプリ内でした)。しかし、Windows で URI のリダイレクトを検出する方法を検索すると、いくつかの例が見つかると思います。

于 2013-10-25T01:59:40.627 に答える