Tuesday, April 05, 2011

Google Spreadsheets を Androidから扱う (3)

前回,Appを認証した際に得られるoauth_verifierとoauth_tokenの値が返ってくることまで確認しました。

今回は,これらの値と前々回,Request Toke取得途中に得られた,OAuthCredentialsResponseの値と一緒に,AccesssTokenを取得します。

oauth_verifier, oauth_tokenの取得

ブラウザからのcallback時に発行されるIntentの中のURIデータを取得し,それをOAuthCallbackUrl に引き渡します。

Uri uri = this.getIntent().getData();
OAuthCallbackUrl callbackUrl;
if (uri != null) {
    Log.d(TAG, "uri: " + uri.toString());
    callbackUrl = new OAuthCallbackUrl(uri.toString());
}

GoogleOAuthGetAccessTokenの作成

上で作成した,OAuthCallbackUrl callbackUrl と,Request Token取得時に得られた OAuthCredentialsResponse credentials (Request Token)を用いて GoogleOAuthGetAccessToken を作成します。

    HttpTransport transport = new ApacheHttpTransport();
    GoogleOAuthGetAccessToken accessToken = new GoogleOAuthGetAccessToken();
    accessToken.transport = transport;
    accessToken.temporaryToken = callbackUrl.token;
    accessToken.verifier = callbackUrl.verifier;
    accessToken.signer = createOAuthSigner(credentials);
    accessToken.consumerKey = "anonymous";

Access Tokenの取得

GoogleOAuthGetAccessToken accessTokenをexecute()することによって,Access Tokenを取得します。


    OAuthCredentialsResponse response = accessToken.execute();

この返り値 OAuthCredentialsResponse response に含まれている, (access) token と(access) tokenSecret が,今後Spreadsheetsにアクセスするための認可されたHTTP requestを生成する際に必要となります。

次回は,自分のアカウントのSpreadSheet一覧を取得します。

No comments: