“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を使用して、つぶやき機能を実装する方法を紹介します。