2013年11月29日金曜日

コマンドラインでTwitter、「tw」導入しました

イロモノ感の強い、Twitter拡張ツールです。「裏Twittterにいける!」みたいなやつ。
僕は1アカウントで運用してるんですが、その中で一部作業をbot化したかったりします。
たとえば「あるワードを含んだツイートは必ずふぁぼる」とか、そういう動作。

計画当初はTwitter for Macを使って自動化ツールを作るつもりでした。
というのも、Twitter for MacはAppleScriptに対応しているんですね。
しかし実際使ってみると思いのほか制限が強くて僕の用途には物足りなかったので、だったらもういっそコマンドラインのツール入れてみるか、という具合です。

意外と手こずるコマンドライン



いや、意外でもなんでもなく、いつもどおり手こずってるだけです。
毎度のごとくつまづいたので、twインストールまでの手順みたいのをメモ。
完全にメモ、ただの僕の作業履歴で、何をやったから成功したとかはわからんままです。

基本的には公式に書いてあるとおりに進めば問題ないはず。

Tw: Twitter client on Ruby.


ぱっと見めっちゃ簡単で

gem install tw

と入力するだけなんですが、なぜか僕の環境ではうまくいかず。
こんな感じのエラーが出ます。

ERROR: Error installing tw:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/http_parser.rb-0.5.3 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/http_parser.rb-0.5.3/ext/ruby_http_parser/gem_make.out


当然よーわからんので、とりあえずgemをアップデート。


sudo gem update


はい、またエラー。


ERROR: Error installing libxml-ruby:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/libxml-ruby-2.7.0 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/libxml-ruby-2.7.0/ext/libxml/gem_make.out


当然よーわからんですが、アップデートできないままだと詰む気がするのでrubygemsのアップデーターをインストール。


sudo gem install rubygems-update


これは成功。続いてそのままアップデートしてみる。


sudo update_rubygems


成功。というか、ここではじめてrubygemsがインストールされたことに気づきました。
今までインストールされてなかったことに驚愕ですが、ひとまずここまでOK。

これでtwもインストールできるのでは?ともう一回やりますが、やっぱり最初のエラーメッセージ。
いい加減ちゃんと読んでみると、どうやらヘッダファイルが見つからないらしいです。
念のために、ここで一応リスト見てみます。


gem list --local


一覧を見ると、どうやらhttp_parser.rb-0.5.3自体がインストールされていない事態。
実ファイルはあるんだけど、なぜなんだろう・・・

でもこういうのって、大抵はtwをインストールするときに自動的に入るのでは?
なのになんでインストールされないんだろう?
って調べてみたら、http_parserなるものは、Xcodeのコマンドラインツールなるものをインストールしないといけないらしいです。
なにが関係あるのかサッパリだけど、とりあえず入れる。


xcode-select --install


これでもう一度twインストールしてみると、


sudo gem install tw


今度こそ成功。俺お疲れさまです。
毎度毎度30分ほど格闘しないとコマンドのインストールすらままなりません。

インストール後は


tw アイライクカガサン(なんでもいいです)


とかやると、PIN認証がはじまります。
説明めんどいので端折りますが、よく見るやつなので適当に進めれば大丈夫。

このtwコマンド、クライアントとして捉えるとそれほど機能は多くないですが、ひと通りのことはできます。
「ツイートを取得できる=解析して色々できる」ということで、自分専用botを作るときには重宝しそうですね。
ちょうど作りたいbot機能もありますし、この勢いで作ってみようと思います。

0 件のコメント:

コメントを投稿