我打算编写一个Android应用来从Google云端硬盘获取文件。
如果存储量很大,下载文件肯定需要数小时。在这种情况下,我需要刷新令牌来完成该过程。据我所知,GoogleAccountCredential
没有提供任何获取刷新令牌的方法。
我想将令牌和刷新令牌发送到网络服务,以便它代表我的应用程序下载文件并将其存储在服务器中。
有没有办法从GoogleAccountCredential
获取刷新令牌?
答案 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();