tw (http://shokai.github.com/tw)の活用方法を紹介します。
うまく使うとプログラムを書かなくてもtwitter botを作ったりできる。
前:ターミナルで使うtwitterクライアント作った
基本的なレシピから順に解説していきます。
最新版にアップデート
ここに書いてあるレシピは、今日リリースした最新版(v0.3.1)でしか動かない物が含まれるので
最新版をインストールしなおしておいてください。
gem install tw
リクエストを並列化して速くなったりもしたし。
zshのコマンド補完を使う
@glidenoteさんがすごい勢いで作ってくれました。
ターミナルで使うtwitterクライアントtwが便利なのでzsh補完関数を作った – Glide Note – グライドノート
UNIX pipeをつかう
コマンドを実行して、アカウントを@shokai_logに切り替えつつ結果をtweetする
% echo "現在の時刻 `date`" | tw --pipe --user=shokai_log
出力フォーマットをカスタマイズ
% tw --format=json
JSON出力される。他のプログラムに渡す時に使える。
自分でフォーマットを決められる
% tw --format="@#{user} #{text}"
user, text, time, id, urlの5つが使える。
Twだけでtwitter botを作る
プログラムを書かずに簡単なbotを起動可能。
–stream, –silent, –format, –pipeを組み合わせる
crontabでbot
0 15 * * * echo "3時です。おやつです。" | tw --pipe --user=shokai_log
3時のおやつを教えてくれる。
shokaiで検索して、即「はい」とリプライするbot
% tw --silent --stream:filter=shokai --format="@#{user} はい" | tw --pipe
grepや–format=json、ワンライナーも活用しよう。
重い処理が終わったら、自分にDMを送る
% make build && echo "buildできたぞー" | tw --pipe --dm:to=shokai --user=shokai_log
ハッシュタグを読み上げる
% tw --silent --stream:filter=tag1,tag2,tag3 --format="#{text}" | xargs -n1 say
動画は3つ同時に見れないけど、読み上げなら3つぐらい同時に実況を把握できて便利
Macのsayコマンドに日本語を喋らせる方法は
Mac/Linuxに喋らせるに書いた。
現在位置をtweetする
% echo "イマココ `whereami -map`" | tw --pipe
gem
wifi_locationでインストールできるwhereamiコマンドを使った。
command+クリックでURLをブラウザで開けるのが便利
もっと色々やりたい人へ
Twを部品として使うと良いです。
twitter botのプログラム書いてみると、大部分が認証だったり、oauth tokenをgitにcommitしてしまったりして大変あほくさい。
そういう面倒な部分をTwにまかせてしまえば捗ります。
アカウント設定ファイルを直接使う
$HOME/.tw.yml に保存されている
これを直接読んで、別のtwitterアプリで使っても良い。
削除してもtwコマンド毎に自動再生成される安心設計
Twitter gemの認証管理フロントエンドとして使う
twはtwitter gemのラッパーで、アカウント管理機能もあるので、twで認証してからTwitter gemを使えば楽になる
例:
アイコンアップロード
認証だけTwを使っている。
Tw::ClientのAPIを使う
Twコマンドが使っている内部API(Tw::Client)が使える。
例1:
mentionを読んだりtweetしたりする例
例2:
dfをツイートする