6

我打算编写一个 Android 应用程序来从 Google Drive 中获取文件。

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

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

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

4

2 回答 2

0

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


flow =new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, clientSecrets, SCOPES) .setAccessType("offline").setApprovalPrompt("force").build();

于 2013-03-03T20:10:47.610 回答
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();
于 2017-01-09T09:11:40.820 回答