前回,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:
Post a Comment