twitter4j は Java 用の twitter API ラッパーライブラリです。
Processing も Java で動いており、Javaで書かれたライブラリをそのまま使うことができます。
そこで、Processing から twitter4j を動かしてみたいと思うのですが、いくつかトラブルが起きます。解決になかなか時間がかかった上、あまりネット上でも(日本語では)解説がないようですので、ここにまとめておきたいと思います。
例題としては、手前味噌ですが、私のgithubから使っていきたいと思います。
Arduino と Processing を連携させて動かすアプリケーションですが、ArduinoにつながなくてもProcessing 単体でも動かせるようにできています。
次のコマンドを使ってプロジェクトごとローカルに落とすか、このリンク先からZIPファイルとしてダウンロードしてください。
$ git clone https://github.com/junpeitsuji/blowing-in-tweets
まず、processing_blowing_in_tweets.pde を Processing 2.0 で起動させましょう。
実行ボタンを押すと、コンソール上に次のようなエラーが出ると思います。
No library found for twitter4j.conf No library found for twitter4j.internal.async No library found for twitter4j.internal.org.json No library found for twitter4j.internal.logging No library found for twitter4j.http No library found for twitter4j.internal.util No library found for twitter4j.api No library found for twitter4j.util No library found for twitter4j.internal.http No library found for twitter4j Libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
twitter4jのライブラリを入れていませんので、当然ですね。
twitter4jのサイトから落としておきたいところですが、残念ながら現行のバージョン3.0.3ではProcessing 2.0で使えないようです(注:私の環境ではうまくいかなかったというだけです)。
そこで、Google 先生によると、twitter4j for processingというものがあるようです。
このリンクをクリックするとGoogle Driveへと飛びます。
「File」「Download」の順で、twitter4j一式が入ったZIPファイルがダウンロードできるはずです。
参考になったのは次のサイトでした。
このZIPファイルをどこに置くかですが、先ほどでたエラーメッセージでは、
<自分で作成したProcessingスケッチのフォルダ>/libraries
の下にコピーすればいいように思うのですが、残念ながらそれでもうまくいきません。
正解は次のフォルダの下です。
<自分で作成したProcessingスケッチのフォルダ>/code
これはやられました。エラーメッセージの通りに入れたのにうまくいかないのです。
この方法はあまり情報がありませんでした。
私が調べたときは、たしかStackOverflowあたりに書いてあったと思うのですが、どこか忘れてしまいました。
少なくとも、このフォルダ以下に、先ほどのtwitter4j for ProcessingのZIPフォルダの中身をすべてコピーしてあげれば動くはずです。
実行すると上の画面が出ます。キーボードで好きなサーチキーワードを入力してエンターを押すとtwitterからの取得が開始されます。
ちなみに、このプログラム、Arduinoとのシリアル通信のライブラリも使っています。
Macの環境では、次のエラーが出ますので注意してください。
Stable Library ========================================= Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7 To use the serial library, first open Applications -> Utilities -> Terminal.app and enter the following: sudo mkdir -p /var/lock sudo chmod 777 /var/lock
上記にある通り、
sudo mkdir -p /var/lock sudo chmod 777 /var/lock
で解決です。