GoogleドライブにアクセスできるJavaでデスクトップアプリケーションを作成しました。(ファイルをアップロードおよびダウンロードするだけです)。
現時点では、アクセス タイプはオンラインです。ドライブのファイル/フォルダーにアクセスする必要がある場合は、ブラウザーを Google の URL にリダイレクトし、アクセス コードを取得します。
String code = "code that was returned from brouser"
GoogleTokenResponse response = flow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute();
GoogleCredential credential = new GoogleCredential().setFromTokenResponse(response);
すべてがうまくいきます!しかし、そのリダイレクトは初めて必要です。
私がグーグルで検索すると、Google Drive APIのドキュメントで、ブラウザのリダイレクトを介してリフレッシュトークンを取得し、たとえばDBに保存できることがわかりました。(つまり、オフライン アクセスを使用できます)。
Googleドライブからデータを読み取る必要があるたびに、リダイレクトなしでリフレッシュトークンを使用してアクセストークンを取得します。そうではありませんか?
だから私はそのようなリフレッシュトークンを取得します:
質問 1
ブラウザのリダイレクトからコードを取得します。リフレッシュトークンですね。次に、そのリフレッシュ トークンを使用してアクセス トークンを取得する必要があります。
$.ajax({
type: "POST",
url: 'https://accounts.google.com/o/oauth2/token',
data: {
client_id: "695230079990.apps.googleusercontent.com",
client_secret: 'OWasYmp7YQ...4GJaPjP902R',
refresh_toke: '4/hBr......................xwJCgQI',
grant_type: 'refresh_token'
},
success: function(response) {
alert(response);
}
});
しかし、エラー 400があります。
質問 2) リダイレクト URL を変更しようとすると、次のエラーが発生します: *
redirect_uri の無効なパラメーター値: 非パブリック ドメインは許可されていません: https://sampl.ecom
では、Google API コンソールからアプリケーションをインストールする代わりに、Web アプリケーション Client ID を作成する必要がありますか? インストール済みアプリケーションのリダイレクト URI を変更できませんか? どれを使えばいいのかわからず困っています。