“TwitterでOAuth認証を行う(2:Twitterの認証ページをブラウザで開く)“ではTwitterの認証ページを表示する所までを
実装しました。
今回はTwitterの認証ページから発行されるIntentから、Access TokenとAccess Token Secretを取得する方法を
紹介します。
Access TokenとAccess Token Secretを使用することで、Twitterの認証ページを経由することなく、アカウントを
使用することができます。
詳細は以下から。
まずはサンプルコードからです。
このサンプルコードは新規に作成するのではなく、”TwitterでOAuth認証を行う(2:Twitterの認証ページをブラウザで開く)“で
作成したCallBackActivity.javaを編集していきます。
CallBackActivity.java
public class CallBackActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.callback); AccessToken token = null; //Twitterの認証画面から発行されるIntentからUriを取得 Uri uri = getIntent().getData(); if(uri != null && uri.toString().startsWith("Callback://CallBackActivity")){ //oauth_verifierを取得する String verifier = uri.getQueryParameter("oauth_verifier"); try { //AccessTokenオブジェクトを取得 token = OauthSample._oauth.getOAuthAccessToken(OauthSample._req, verifier); } catch (TwitterException e) { e.printStackTrace(); } } TextView tv = (TextView)findViewById(R.id.textView1); CharSequence cs = "token:" + token.getToken() + "\r\n" + "token secret:" + token.getTokenSecret(); tv.setText(cs); } }
11行目では、Twitterの認証画面から発行されるIntentからUriを取得しています。
このUriにはOAuth TokenとOAuth_Verifierが格納されています。
15行目では、UriからOAuth_Verifierを取得しています。
18行目では、Twitterの認証画面を表示する際に使用したRequestTokenオブジェクトと15行目で取得したOAuth_Verifierを
使用して、AccessTokenオブジェクトを作成しています。
25行目では、18行目で作成したAccessTokenオブジェクトからgetTokenメソッドとgetTokenSecretメソッドを使用して、
Access TokenとAccess Token Secretを取得しています。
このAccess TokenとAccess Token Secretをアプリ内で保存しておくことで、Twitterの認証ページを経由することなく、
アカウントを使用することができます。
サンプルコードではTextViewで出力するのみですが、実際にはDESなどで暗号化し、Preferenceなどで保存
(データを簡単に保存する方法(Preference編)参照)します。
次回予告
次回はAccess TokenとAccess Token Secretを使用して、つぶやき機能を実装する方法を紹介します。