2014年10月21日火曜日

Processing + Twitter4j でタイムラインを取得&表示してみる - その3

気がついたら秋。毎度のことながら、かなりご無沙汰してました。教育実習(1ヶ月)もなんとか乗りきり、プログラムにさわって遊ぶ時間が取れるようになったので、ぼちぼちと勉強のメモを再開していきます。

前回のエントリでは、text() で長文を描画するとウィンドウに収まりきらないという問題を残したままになっていました。そこで今回は、GUI を使ってきれいにTwitter のタイムラインを表示させてみたいと思います。

  • controlP5 のインポート

controlP5 というGUI ライブラリのお世話になります。jar ファイルをプロジェクトの中のcode フォルダに入れます。twitter4j のjar ファイルが置いてあるのと同じ場所ですね。

controlP5 のライブラリを扱うために、新しく変数を宣言しています。カンタンです。

  • setup() 関数


ここでも大きな変更はありません。先ほど宣言した変数のcp5 にオブジェクトを代入する部分を加えるだけですね。

  • keyPressed() 関数:処理の呼び出し


いずれかのキーを押したときに、タイムラインからツイートを取得するためのgetTimeline() 関数を、5回呼び出します。これで、最新の上位5つを取ってきます。

  • getTimeline() 関数:ツイートの表示


今回のメインといえる部分です。ループ回数を引数として受け取っています。

controlP5 オブジェクトを使って、テキストエリアをつくります。テキストエリアは固有の名前をもつみたいなので、ループ回数を利用して違うラベリングをしましょう。その後ろにツイート内容を取得するための処理を書きます。最後にテキストエリアの位置とサイズを指定します。
テキストエリアの背景や文字の色なども変更できます。フォントはMeiryo やMS-Gothic を使わないと、日本語は文字化けしますよ。テキストエリアについての詳しい情報は、Textarea を見てください。

  • すべてのコード


これでツイートをフレームアウトさせることなく、きれいに表示させることができます。注意していただきたいのは、ツイートを取得するためのリクエスト数に制限が設けられているらしく、あまり頻繁にアクセスすると一定時間は応答がなくなるということです。詳しくは、API Rate Limits を読んでください。

またキーを2回押すと、同じ名前のテキストエリアがつくられてしまって、コンソールにエラーが表示されます(ツイートは正しく表示されるけど)。なので、更新ボタンなどのGUI を加えていく場合は、一度テキストエリアを消去してつくり直すような処理にしないとダメかもしれません。

以下のページを参考にさせていただきました。では、ごきげんよう。
  1. Processing Library
  2. controlP5 Examples

0 件のコメント:

コメントを投稿