rubotyにウェブサイトのスクショを撮らせるプラグインruboty-ssを公開した。
デフォルトだと画像はGyazoに保存される。Dropboxに保存することも出来る。
試したもの
json-collectionとjsonism
GistのAPIを叩くために使った。 画像の添付などmultipartでpostしようとして少し時間がかかった。 ほんとはもっと楽な方法あるのかもしれないけどやり方がわからなかったので内部のfaradayのconnection差し替えたりしてそこが面倒だった。
phantomjs-gem
今まではHerokuでPhantomJSを動かしたい場合、phantomjsのビルドパックを使っていた。
今回はphantomjs-gem
を使うことにした。あまり何も考えていなくてもHerokuでphantomjsが動かせて便利。
こういうバイナリダウンロード系のgem、Herokuで雑に動かしたいときにすごく役に立つ。
dropbox api
公式のクライアントを使った。 access tokenさえ取れれば比較的なんでも出来る。
gyazo api
どうでもいい画像はるときに便利。消せないのが残念だけど画像を貼るだけに特化しているのですごく扱いやすい。
ハマったところ
Gistに画像が貼れない
画像の保存先としてGistを使おうとしたがGistはAPIから画像を保存することはできない。 もしも保存したいのならば
- APIを使いGistを作る
- GistをcloneしてきてGitでimageを追加したコミットをpushする
の2ステップが必要なのであきらめた
反省
結局画像の保存先選びが一番苦労した。 Gist/Dropbox/Gyazoの順で試していったが最初からGyazoればよかった。
スクリーンショットを撮るサービスは探せばありそうだ。
- PhantomJS使ってウェブサイトをキャプチャする処理
- 画像を保存する処理
どちらもやってくれるサービスを探せばよかった。
次に向けて
RubyのライブラリがないAPIを叩くとRubotyのプラグインをつくるついでにライブラリのgemが1個できるのでよさそう。 既存のgemを使うだけだと書いててお得感が無い。