“TwitterでOAuth認証を行う(3:Access Tokenを取得する)“ではOAuth認証を使ってAccess Tokenを取得する
所までを実装しました。
今回は取得したAccess Tokenを使用して”つぶやき”を実装してみましょう。
つぶやきを実装するには、twitter4JのTwitterクラスを使用します。
※本記事は2011/5/12現在のバージョンのTwitter4Jを使用しています。
詳細は以下から。
Twitterクラスとは?
TwitterクラスはAccess TokenとConsumer keyを設定する事で、タイムラインなどのユーザー情報の取得や、
つぶやきなどのユーザー機能の使用が行えるクラスです。(公式リファレンス)
タイムラインの取得やリツイート、などについては次週詳しく解説します。
今回はTwitterクラスのインスタンス化から、Access TokenとConsumer keyの設定、”つぶやき”までの実装を
行います。
まずはTwitterクラスのインスタンス化から、Access TokenとConsumer keyの設定までのサンプルです。
//twitterオブジェクトの作成 Twitter tw = new TwitterFactory().getInstance(); //AccessTokenオブジェクトの作成 AccessToken at = new AccessToken(tokenStr, tokenSecretStr); //Consumer keyとConsumer key seacretの設定 tw.setOAuthConsumer("アプリケーションのConsumer key", "アプリケーションのConsumer key secret"); //AccessTokenオブジェクトを設定 tw.setOAuthAccessToken(at);
2行目で、Twitterクラスのインスタンス化を行っています。
5行目で、Access TokenとAccess Token Secretを使用してAccessTokenクラスをインスタンス化しています。
8行目で、TwitterクラスオブジェクトにConsumer keyとConsumer key secretを設定しています。
11行目で、5行目で作成したAccessTokenオブジェクトをTwitterオブジェクトに設定しています。
“つぶやき”の実装
“つぶやき”はインスタンス化したTwitterオブジェクトでTwitter#updateStatusメソッドをコールすることで実装できます。
Twitter#updateStatusメソッドの引数につぶやきたい文字列を指定します。
また、つぶやきを送信している最中に発生するエラーは例外としてTwitterExceptionがthrowされます。
TwitterException#isCausedByNetworkIssueメソッドを使用することで、ネットワーク上の問題か
どうかを判別することができます。
try { tw.updateStatus("つぶやきたい文字列"); } catch (TwitterException e) { e.printStackTrace(); if(e.isCausedByNetworkIssue){ Toast.makeText(this, "ネットーワークの問題です", Toast.LENGTH_LONG); } }