スペシャルイベント目前なれど、今回の話題は「Twitter」。といっても、当コラムが普通にTwitterの使い方を紹介するわけもなく、ましてやその効用を説くなど……いわんやソーシャルメディア論をや。今回は、手に馴染んだTerminal上で快適なTwitterライフを、と願う筆者が試行錯誤したことの報告である。
「Twitterのあり方」を再考する
Twitterというサービスは一種独特で、個人的には「マイクロブログ」などという他のサービスを組み合わせた表現は適さないと考えている。Twitterはあくまで「(The)Twitter」であり、世界規模で広がる一種のコミュニティを形成している点からしても、他のサービスと括って説明することは難しい。
表面だけを見れば、Webブラウザや専用ソフト(Twitterクライアント)を利用したHTTPベースのサービスだが、NTT Americaのデータセンターを軸に、Amazon S3やCloudFrontといったクラウドサービスを組み合わせた、強固なクラウド基盤のもと成り立っている。フレームワーク(Twitter API)やアクセス制御用プロトコル(OAuth)など、充実した開発環境の整備もTwitterならではだ。
そのように進化を続けるTwitterだが、サービス開始当初から一貫したポリシーがいくつかある。それは、1回のツイートは「140字」が上限であること。URLの形で画像などのデータを引用することは可能なものの、基本的にキャラクタベースのサービスなのだ。
ということは……Terminalとの親和性も意外に高いのでは、という仮定が成り立つ。Twitterには多数のコマンドがあることからしても(リンク)、相性は悪くないどころかCUIで用が足りてしまう可能性が高い。それにTwitter APIはcurlコマンドから呼び出すことができる(テストに使う開発者も多い)ので、そもそもTerminalとは浅からぬ仲なのだ。
CUIのTwitterクライアント「Tw」を試す
CUIのTwitterクライアントはUNIX系OS向けに以前から存在するが、GUI版を使わずに済むほどの操作性を備えたものは見当たらなかった。OS Xの場合、標準装備のcurlコマンドを使いTwitter APIの機能にアクセスする方法もあるが、複数のオプションを指定する必要があるなど、常用したくなるとはお世辞にもいえない代物だ。
そんなとき、突如として現れた「Tw」。このRubyで記述されたこのTwitterクライアントは、ツイートやDMを送信することはもちろん、Streaming APIの働きによりユーザーのタイムラインや検索結果をほぼリアルタイムに表示できる。
インストールはすこぶるかんたん。Rubyのパッケージ管理システム「RubyGems」を利用しているので、コマンドライン1行を実行すればOK。TwitterのWebサイトへ誘導されるので、ログイン後に表示される数値をチェックしておき、Terminalでtwコマンドを最初に実行したときに入力すること。
ただし、OS Xのデフォルトでは「Faraday: you may want to install system_timer for reliable timeouts」と警告を受けるので、system_timerというパッケージもあわせてインストールしておこう。
$ sudo gem install tw
$ sudo gem install --remote system_timer
1. 手はじめにツイート
ツイートは、単純そのもの。ツイートする文字列を引数に与えるだけでいい。文字列の前後はダブルクォートで囲むクセをつけておけば、途中にスペースが入る文章でも対応できる。なお、「tw」とだけ実行すると自分のツイートが、「@ユーザ名」を引数とするとそのユーザのツイートが表示される。
$ tw "てすてす"
2. タイムラインの取得
自分のタイムラインを取得するには、オプションに「--timeline」(短縮形は「-tl」)を指定する。ツイートあたりの文字数を考慮すると、デフォルトでは80x24の画面に収まらないため、tailコマンドと組み合わせて使うといいだろう。以下の実行例は、直近5件のツイートに絞って表示するものだ。
$ tw -tl | tail -5
3. ストリームを表示
Twの売りは、Streaming APIに対応することだ。オプションに「--stream」を指定して実行すると、自分のタイムラインをリアルタイムに表示してくれる。Terminalは複数のタブを表示できるため、1つはシェルで1つは「Tw」専用で……という使い方もアリだろう。なお、終了はControl-Cだ。
$ tw --stream
4. DMをチェック/送信する
もちろんDMの送受信にも対応する。これまで受信したDMを一覧表示するなら、オプションを「--dm」として実行すればいい。送信する場合には、「--dm:to=xxxx」(「D xxxx」と同じ)に続けて、送信するメッセージを指定すればOKだ。
$ tw --dm:to=u_shinobu "どもども"
5. Terminalならではの合わせ技
Twでうれしいのは、パイプを利用した他のコマンドとの合わせ技。たとえば、以下の実行例のように末尾に「--pipe」オプションを加えると、標準入力から受け取った文字列をツイートやDMに使用できるので、bcコマンドで計算した結果をDMで送信、といったTerminalならではの使い方が可能になる。組み合わせるコマンド次第で活用の幅は広がるので、いろいろ工夫してほしい。
$ echo '9*9' | bc | tw --dm:to=u_shinobu --pipe