GoogleAccountCredential是否提供刷新令牌?

时间:2013-03-03 17:18:46

标签: android oauth-2.0 credentials google-drive-api

我打算编写一个Android应用来从Google云端硬盘获取文件。

如果存储量很大,下载文件肯定需要数小时。在这种情况下,我需要刷新令牌来完成该过程。据我所知,GoogleAccountCredential没有提供任何获取刷新令牌的方法。

我想将令牌和刷新令牌发送到网络服务,以便它代表我的应用程序下载文件并将其存储在服务器中。

有没有办法从GoogleAccountCredential获取刷新令牌?

2 个答案:

答案 0 :(得分:0)

我不知道android但是在java中如果你想获得刷新令牌,你必须要求GoogleAuthorizationaflow用于离线访问类型..


flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport,jsonFactory,clientSecrets,SCOPES)               .setAccessType( “离线”)setApprovalPrompt( “力”)建立();

答案 1 :(得分: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("hello@gmail.com");
cred.getToken();