Java ベースのアプリケーションに DropBox を統合しています。次のコードは、スタンドアロン モードで実行すると正常に動作します。
private String APP_KEY = "APP_KEY";
private String APP_SECRET = "APP_SECRET";
private AccessType ACCESS_TYPE = AccessType.APP_FOLDER;
AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
WebAuthSession session = new WebAuthSession(appKeys, ACCESS_TYPE);
WebAuthInfo authInfo = session.getAuthInfo("callbackURL");
RequestTokenPair pair = authInfo.requestTokenPair;
String url = authInfo.url;
Desktop.getDesktop().browse(URL(url).toURI());
session.retrieveWebAccessToken(pair);
AccessTokenPair tokens = session.getAccessTokenPair();
スタンドアロン モードでは、このコードによって DropBox のログイン ページにリダイレクトされます。ユーザーがアプリを承認すると、コントロールは「callbackURL」で指定されたページに戻ります。
実際にサイトを実行しているときに同じパッチを使用しています。「今すぐ DropBox にリンク」というリンクがあります。リンクをクリックすると、REST 呼び出しを介してコントロールがサーバーに渡され、上記のコードが実行されます。しかし、次のようなコード行で行き詰まります。
Desktop.getDesktop().browse(URL(url).toURI());
authInfo()を取得するために必要なすべてのパラメーターが適切に渡されたとき。
どこが間違っているのか判断できません。どんな助けでも大歓迎です。