3

私がする必要があるのは、グーグルドライブにファイルをロードすることです。

私はGoogleAccountManagerを使用してoauth2で認証し、AUTHTOKENを取得ていますが、次に何をするかはわかりません。

ドライブオブジェクトを作成するには、それらを取得できる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);

次に、このURLは「https://www.googleapis.com/tasks/v1/users/@me/lists?key="」から取得されます。

Googleドライブにファイルをロードする方法についてアドバイスまたはサンプルコードを教えてください。ありがとう。

4

1 に答える 1

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は、GoogleApisコンソールから取得するキーです。

これまでのところうまくいくようです。ドキュメントは非常に貧弱です。うまくいけば、それが成熟するにつれてそれは改善するでしょう。GApiへのアクセスに関して自分が何をしているのかをすでに知っている人のために書かれているようです。完全なサンプルを使用すると、時間を大幅に節約できます。

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 に答える