簡易Twitterクライアント作ってみた
目的
twitterに絡んだ、「今風?」なアプリの構築手順を理解したかった(OAuthとか)
こういったアプリを作っておけるのも今だけ。。
学部4年からは雑魚ながら、がっつり研究室に貢献したい。
まずはパブリックライムラインのツイート取得。
タイムラインの取得やAPIの使用等はTwitterのAPIドキュメントを参照してもらうとして
以下のURLでXMLデータを取得する事が可能。
http://api.twitter.com/1/statuses/public_timeline.xml
コードは省略。とりあえずXMLのtextタグのみを抽出したらこんな感じ
次はリストビューをカスタマイズする。
ユーザー名とツイート内容、アイコン画像を表示させる。
ビューはこんな感じに設定。
Before
After
んでもって、コーティング部分ではツイート内容、ユーザー名、アイコン画像のURLをまとめて扱う為クラスを定義し、そのオブジェクトをアダプターに追加している。
この時、アダプターをString型を扱うArrayAdapter
こんな感じ
OAuth認証を組み込む
まずはここでアプリケーションの登録を申請。
ここでConsumer keyとConsumer secret、OAuth認証を行う際に必要なurlが3つ発行される。
OAuth認証自体のプログラムはライブラリを普通使う。仕組みの概念とかはググってちょ。
それを組み込んだ上で、レイアウトの配置とコーディング。それは省略。
OAuth認証手順としては
- 1: 「Consumer key」と「Consumer secret」と,3つのURLからtwittetの認証ページへのURLを生成
- 2: 生成されたURLを開くと登録申請hしたアプリケーションの認証ページが表示される
- 3: 認証ページにある「許可」ボタンをクリックするとアプリケーションを使用する為の暗証番号が表示される
- 4: 生成されたURLと暗証番号から認証用の「Token key」と「Token secret」のペアを生成
- 5: 「Token key」と「Token secret」を使ってOAuth認証を行い、ホームタイムラインの表示
んで、実行させた。
デザインのインタフェースも自分で作成する。こんな感じ。
実行画面。まず、URLが生成され用意しておいたWebViewにTwitterの認証ページが表示される
暗証番号が発行されるので、それを今回は入力ボックスにセット。
これでOAuth認証の準備完了
後は、OAuth認証の部分をちょこっと実装、具体的には先ほどまで使っていたボタン等の部品を隠したり,URLから直接インプットストリームで渡していた部分をコネクションから取り出したりなど。
実行すると、確認ダイアログが出てくる。
すると暗証番号が出るので、これを打つと自分のタイムラインが取得できる。
ただ、現状だとアプリケーションを起動する度に認証が行われるのでToken keyとToken secretを保存し2回目以降は認証をパスするようにした。
具体的にはテキストファイルに情報を保存。その情報を読み書きするメソッドの用意、内部ではストリーム操作と読み込みの確認フラグの操作。