2013-03-03 6 views
5

Googleドライブからファイルを取得するためのAndroidアプリを作成する予定です。GoogleAccountCredentialは更新トークンを提供していますか?

容量が大きい場合、ファイルをダウンロードするのに数時間かかることは間違いありません。そのような場合は、プロセスを完了するためにリフレッシュトークンが必要です。私が知る限り、GoogleAccountCredentialはリフレッシュトークンを取得する方法を提供していません。

トークンとリフレッシュトークンをwebseviceに送信して、アプリケーションに代わってファイルをダウンロードしてサーバーに保存したいとします。

リフレッシュトークンを取得する方法はありますかGoogleAccountCredential

+0

解決策は見つかりましたか? – tttony

答えて

0

私は、

流れ
よう=新しいGoogleAuthorizationCodeFlow.Builder(httpTransport、jsonFactory、clientSecrets ..あなたは、リフレッシュトークンを取得したい場合、オフラインアクセスタイプのためGoogleAuthorizationaflowを要求しなければならないアンドロイドが、Javaで知っているいけませんスコープ) .setAccessType( "offline")。setApprovalPrompt( "force")。build();

+0

返信user2032988ありがとうございます。 しかし、私はGoogleAccountCredentialを使ってトークンを取得し、GoogleAuthorizationCodeFlowのラッパーとして機能し、トークンを2つのステップで取得します。最初に返されたAuthcodeを解析してからtokeにアクセスする必要はありません。 – Manoj

0

はい、あります。 リフレッシュトークンを取得するサーバー側のスコープを要求する必要があります。

String MY_SCOPE = ""; // put your score here, e.g. "https://www.googleapis.com/auth/gmail.readonly" 
String CLIENT_ID = "1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"; 
String SERVER_SCOPE = "oauth2:server:client_id:" + CLIENT_ID + ":api_scope:" + MY_SCOPE; 

GoogleAccountCredential cred = new GoogleAccountCredential(context, SERVER_SCOPE).setSelectedAccountName("[email protected]"); 
cred.getToken(); 
関連する問題