Twitter(ツイッター)のブームには目を見張る。一般のビジネスパーソンが読む雑誌が特集し、書籍、ムックもたくさん出版されている。筆者の同僚は「実家の祖母がTwitterを知っていた」とTwitterでつぶやいていた。この記者の眼でも「うっかり編集者のビジネス・ツイッター」「みなさん、つぶやいてますか?」「「ダダ漏れ」に対して感じる脅威と危惧、そして可能性」など、Twitterを何度も取り上げている。

 筆者が所属する日経ソフトウエアでも、このブームに乗じてTwitterを活用しようということになり、公式アカウント@nikkei_softwareの運用を3月下旬に始めた。日経ソフトウエアとして運用するからにはプログラミングをからめたい。それならば、ということでアカウントをボット(自動投稿プログラム)で運用することにした。もちろんボットはオリジナルのものを作る。せっかくならそれをネタに記事も作ってしまおう、きっと役立ててくれる読者がいるはず、といった経緯で実現したのが、日経ソフトウエア2010年5月号の特集2「プログラマ的 初めてのTwitter」である。

 あれこれ調べながらボットを作ってみて強く感じたのは、今、プログラミングの題材としてもこれほど簡単で面白いサービスはほかにないということ。日経ソフトウエアの記者としては、プログラミングを楽しめるネタを見つけたときほどうれしいことはない。

驚くほど簡単にアクセスできる

 よく知られているように、Twitterが受け付けるツイートは1件140字までのテキストである。この制限の絶妙さはTwitterユーザーの多くが肌で感じていることと思う。プログラミングのハードルを下げるという点でもこの制限が大いにプラスに作用している。短めのプレーンテキストの処理は、プログラミングを学んだ人ならたいてい何らかの形でマスターしているからだ。加えて、難しそうに見えるTwitterのサーバーとのインタフェースは、メジャーなプログラミング言語であれば誰かしらライブラリを作ってサンプルとともに公開してくれている。それを使う分には全く難しくない。あとは、ちょっとした配列操作ができればTwitterとのやり取りは十分に書ける。

 では「Twitterをプログラミングする」ことで何ができるのか。Twitterをアクティブに使っているユーザーなら、様々なデバイスで動作するサードパーティ製のTwitterクライアントや、「○○ったー」「ツイット○○」という名前を冠するサービスをあちこちで目にし、一部は利用してもいるだろう。あのようなソフトウエアやサービスを簡単に作れる(かもしれない)のだ。

 例えばTwitter標準の、Webブラウザベースのユーザーインタフェースでは、「フォローしている」のリストには、その人が自分をフォローしているかどうかが表示されない。自分のツイートがだれのタイムラインに現れるかを意識して使うようになると、これが案外気になったりする。プログラムからは、(1)「フォローしている」の一覧を取得し、(2)「フォローされている」の一覧を取得し、(3) (1)から(2)を引く、の3ステップで一覧を作れる。そのような情報を利用して「片思い」のユーザー名を色分け表示するようなツールも実際に作られている。

 Twitterのメインストリームとも言うべきタイムラインを相手にすることももちろんできる。特集記事で作成したボットは、あらかじめ予約しておいたツイートの投稿、および一定時間以上ツイート間隔が開いたときに、あらかじめストックしておいたクイズを出題して場をつなぐといった簡単なものだ。Rubyで50行ほどのプログラムになった(誌面に載せた現物を日経ソフトウエアのWebサイトに公開している)。実際に稼働しているプログラムは、書式を少し変えたり、サーバーから応答が返ってこないときの「例外処理」と呼ぶ動作や、ログを出力する機能を追加したりしたため、掲載した版とは少し違うのだが、それでも初心者から1歩抜けたくらいのスキルがあれば、ひとがんばりで十分に書き下せる。

 止めどなく流通するツイートを、蛇口をひねるように1行のコードで取り出せる。逆に膨大なユーザーに向けて140字のテキストを流すのも1行のコードでできる。これが「さあ使ってください」と言わんばかりに目の前に横たわっているのだから、取り組んでみない手はない。そして誰も見たことがない「○○ったー」を実現してみませんか?