我打算编写一个 Android 应用程序来从 Google Drive 中获取文件。
如果存储空间很大,下载文件肯定需要几个小时。在这种情况下,我需要刷新令牌来完成该过程。据我所知,GoogleAccountCredential
没有提供任何获取刷新令牌的方法。
我想将令牌和刷新令牌发送到网络服务,以便它代表我的应用程序下载文件并将其存储在服务器中。
有没有办法从中获取刷新令牌GoogleAccountCredential
?
我打算编写一个 Android 应用程序来从 Google Drive 中获取文件。
如果存储空间很大,下载文件肯定需要几个小时。在这种情况下,我需要刷新令牌来完成该过程。据我所知,GoogleAccountCredential
没有提供任何获取刷新令牌的方法。
我想将令牌和刷新令牌发送到网络服务,以便它代表我的应用程序下载文件并将其存储在服务器中。
有没有办法从中获取刷新令牌GoogleAccountCredential
?
我不知道 android 但在 java 中如果你想获得刷新令牌,你必须请求 GoogleAuthorizationaflow 的离线访问类型..
像
flow =new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, clientSecrets, SCOPES) .setAccessType("offline").setApprovalPrompt("force").build();
是的,它确实。您需要请求服务器端范围来获取刷新令牌:
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();