3

我需要做的是在谷歌驱动器上加载文件。

我正在使用GoogleAccountManager通过 oauth2 进行授权并获得AUTHTOKEN并且现在不知道下一步该做什么。

要创建 Drive 对象,我需要GoogleCredential在哪里可以获得它们?

Drive service = new Drive(TRANSPORT, JSON_FACTORY, credential);

也许我应该做类似的事情来连接到在线服务教程?

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=”

请给我建议或示例代码如何在谷歌驱动器上加载文件。谢谢。

4

1 回答 1

5

这个答案现在已经过时了,因为 AccountManager 身份验证已被弃用,取而代之的是 Play Services。

新答案

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 API 控制台获得的密钥。

到目前为止似乎工作。文档很差。希望随着它的成熟,它会有所改善。它似乎是为那些已经知道他们在访问 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();
}
于 2012-06-29T06:16:27.620 回答