我需要做的是在google驱动器上加载文件。
我正在使用 GoogleAccountManager 通过oauth2进行授权并获取 AUTHTOKEN ,现在不做下一步操作。
要创建云端硬盘对象,我需要 GoogleCredential 才能获得它们?
Drive service = new Drive(TRANSPORT, JSON_FACTORY, credential);
也许我应该对Connect to the Online Service教程做类似的事情?
URL url = new URL("https://www.googleapis.com/tasks/v1/users/@me/lists?key=" + your_api_key);
URLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("client_id", your client id);
conn.addRequestProperty("client_secret", your client secret);
conn.setRequestProperty("Authorization", "OAuth " + token);
然后此网址来自“https://www.googleapis.com/tasks/v1/users/@me/lists?key=”
请给我建议或示例代码如何在谷歌驱动器上加载文件。感谢。
答案 0 :(得分:5)
此答案现已过时,因为已弃用AccountManager身份验证而支持Play服务。
新答案
private Drive service;
private GoogleAccountCredential credential;
credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
credential.setSelectedAccountName(accountName);
service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
原始回答
我用过这个。 AuthToken 是您从AccountManager收到的令牌。 ApiKey 是您从Google Apis Console获得的密钥。
到目前为止似乎工作。文档很差。希望随着它的成熟,它会有所改善。它似乎是为已经知道他们在访问G Api时所做的事情的人写的。完整的样本可以节省很多时间。
static Drive buildService(final String AuthToken, final String ApiKey) {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
Drive.Builder b = new Drive.Builder(httpTransport, jsonFactory, null);
b.setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() {
@Override
public void initialize(JsonHttpRequest request) throws IOException {
DriveRequest driveRequest = (DriveRequest) request;
driveRequest.setPrettyPrint(true);
driveRequest.setKey(ApiKey);
driveRequest.setOauthToken(AuthToken);
}
});
return b.build();
}