プログラマでありたい

おっさんになっても、プログラマでありつづけたい

IFTTTで雑にエゴサーチして通知する

 クローラー本を出していますが、可能であればプログラミング・レスで楽にしたいと思っています。そんな時にお勧めのツールが、IFTTTです。IFTTTは、説明不要かもしれませんが、Webサービス同士を連携するアプリです。今のご時世、サービス同士を組み合わせるだけで殆どのことが出来るのです。
 ということで、IFTTTとその他のサービスを利用してエゴサーチの仕組みを作ってみましょう。エゴサーチとは、自分の名前や自社の商品など検索することの俗語です。ご多分にもれず、私も自分の本のエゴサーチに勤しんでいます。今回、エゴサーチの収拾元としては、GoogleとTwitterとします。

IFTTT側の仕組み



 まずエゴサーチの仕組みの構築です。Twitterの場合は、単純に検索結果で新規のものの抽出です。Googleのものも検索結果の新着を使うのですが、これをWebサービスでどう実現するかが課題です。お勧めなのが、Google Alertです。Google Alertは、予め決めておいたキーワードが出てきたら通知するという素晴らしいサービスです。昔からあり、コンセプトも良いのですが何故かマイナーなサービスです。
 データの収拾元が決まったことで、IFTTT側の構成を考えてみましょう。今回は通知するだけではなく、可能であれば蓄積したいと思います。そこで、Googleスプレッドシートに保存していくことにします。通知が必要であれば、IFTTTのモバイルアプリを入れてAcitonをIF Notificationsに指定すれば大丈夫です。全体像をまとめると次のような図になります。

f:id:dkfj:20160927161253p:plain

Googleアラートの設定



 Google Alertの問題点は通知方法です。デフォルトはEメールです。が、メールで送られても扱いづらいです。もう1つの通知方法としては、RSSがあります。これが意外に使えます。設定は簡単で、キーワードを入力し、オプションで頻度を"その都度"にし、配信先を"RSS"とするだけです。

f:id:dkfj:20160927161548p:plain
f:id:dkfj:20160927161751p:plain

IFTTT側の設定 Googleアラート編



 IFTTTは、Google Alertの通知とTwitter検索を別々に設定します。まず、Google Alertです。先に設定したアラートから、RSSのURLをコピーしておきます。そして、IFTTTで新規のレシピの作成をします。まずレシピのthisにあたる"Choose Trigger Channel "ですが、チャンネルとしてRSSを指定します。

f:id:dkfj:20160928081159p:plain

次にRSSで"New feed item"を選びます
f:id:dkfj:20160928081402p:plain

RSSのURLを入力します。
f:id:dkfj:20160928081418p:plain

今度はthat側である"Choose Action Channel "の設定です。Google Driveを選びます。
f:id:dkfj:20160928081436p:plain

詳細設定で、"Add row to spreadsheet"を選び新規の行を追加するようにします。
f:id:dkfj:20160928081452p:plain


 これでレシピの作成は完了です。こんな感じでデータが蓄積されていきます。

f:id:dkfj:20160929141620p:plain

IFTTT側の設定 Twitter検索編



 次は、Twitterの検索です。こちらは、Googleアラートの設定よりも簡単です。IFTTT側にTwitterのトリガーのパターンがあるので、それを利用します。初回利用時は、Twitterとのアカウント連携が必要になります。内容を確認して、許可を与えてください。

f:id:dkfj:20160929141955p:plain

 "New tweet from search"を利用し、検索条件を設定します。
f:id:dkfj:20160929142002p:plain
f:id:dkfj:20160929142008p:plain

 アクション側は、先程のGoogleアラートと同様に設定します。さっくりと簡単です。

まとめ



 上記の検索を、自分でプログラムで組もうと思うとそれなりに大変です。これが、Webサービスを組み合わせることにより、15分程度で実現できるようになっています。また拡張性も優れていて、例えばもう少し細かくコントロールしたいのであれば、受けての方をGoogle Apps Scriptで取得するといったことも考えられます。アイデア次第でいろいろ出来るので、ぜひ試してみてください。

データを集める技術

データを集める技術

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例