遅延なしのエゴサーチ通知サービス「EgoProwl」とは

EgoProwlとは @northeye さん作のTwiProwlを @tom_go さんがエゴサーチ用に修正したものです。サーバーからパブリックタイムラインを監視して、指定キーワードを検出するとProwlに通知してくれます。

自分専用の通知サービスなのでBoxcarやクライアントアプリ開発元が提供する気まぐれなプッシュサービスではなく、おサボりは無論遅延もほとんどなく通知されます。TwiProwlを使い始めて2年近くなりますが安定稼働しています。

以下は「EgoProwl」をキーワードとして通知されたサンプルです。

IMG_1330

受信した通知(通知センターでもバナーでも同様)を開くとProwlが立ち上がり、Tweetbotで開くか聞いてきます。Launchを選びます。

IMG_1331

Tweetbotで通知されたツイートを直接開きます。パブリックタイムラインを監視しているのでフォローしていないユーザやリストに入れていないユーザのツイートも拾ってきます。

IMG_1332

ブロガーがエントリ直後に読者の反応や、アプリ開発者がリリース直後にユーザの反応などタイムリーに確認し、サポートやフォローするのに威力を発揮します。

クライアントアプリはURLスキームに対応していれば指定可能で、Prowlからリダイレクト時に確認せずそのまま開くようにすることもできます。

EgoProwlの実行に必要な環境

ここが一番ハードル高いところです。まず、EgoProwlを動かすサーバーとRuby1.9以上の環境が必要です。さくらレンタルサーバーやRaspberry Piでも動作を確認しています。

WordPressなどのブログ管理システムを動かしているレンタルサーバーならできるような気がしますがプランによって環境構築に制約があったりします。

自力でなんとかするしかありません。

EgoProwlを設定する

以下からPCにダウンロードします。

config.ymlをエディタで開き以下の編集を行います。

LogDir: /tmp ← ログファイルを格納する場所を指定します
Debug: false
Daemon: true ← レンタルサーバーにデーモン禁止されている場合はfalseにします

CAPath: /etc/ssl/certs # for Debian
# CAFile: /opt/local/share/curl/curl-ca-bundle.crt # for MacPorts
# CAFile: /usr/local/share/certs/ca-root-nss.crt
# ProxyURI:

Prowl:
APIKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NMA:
APIKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Growl:
Sticky: 0 # lowest priority to enable stikcy option

Accounts:

Application: “Egosearch” ← Prowlに通知する際のアプリ名
User: hogehoge ← Twitter ID
RateLimitThreshold: 20
UseProxy: false # <= use Prowl::ProxyURL NotifyKeywordUpdates: true ← 検索キーワードがアップデートされると通知します NotifyMethods: ←利用サービスに合わせてコメントアウトします - "prowl" # Prowl for iPhone - "nma" # Notify My Android for Android # - "growl" # use growlnotify, it requires growl.gem and growlnotify Redirect: "tweetbot:///status/%s" # Tweetbot リダイレクトするアプリのカスタムURLを書きます # Redirect: "twitter://status?id=%s" # Twitter

あとはサーバーにアップロードし、パーミッションを設定します。

Prowlの設定

Prowlをインストールして必要に応じてAPI Keyを取得します。

Prowl: Growl Client 1.4
ユーティリティ,仕事効率化
App Storeで詳細を見る

設定からRedirectionsを選択し、config.ymlのApplicationと合わせて指定、URLスキームまたはProwlが提供するリストからクライアントアプリを設定します。

IMG_1328

エゴサーチのキーワード指定の方法

EgoProwlのキーワードはTwitterで保存された検索ワードと同期しています。編集はクライアントアプリで行えるので便利です。

IMG_1329

検索キーワードの変更はconfig.ymlで設定しておくと通知することもできます。rate_limit回避のため1回/分に制限されています。

IMG_1327

キーワードが英数字の場合はUser Stream APIを使用しているのでほぼリアルタイムで通知されますが、日本語は非対応のようで1回/分です。Twitter API1.1によってrate_limit制限に引っかかる可能性があるので日本語キーワードを指定する場合は別アカウントでの運用が無難です。

レンタルサーバーでの環境構築

さくらレンタルサーバーでの動作を確認しています。参考まで。

Androidの通知アプリ「Notify My Android」にも対応

config.ymlのNMAのAPI Keyを設定するだけです。Androidにはプッシュ通知対応のクライアントやアプリが少ないので重宝します。

Screenshot_2013-02-14-00-19-53_1

謝辞

プッシュ通知が来るの来ないのと悩まされることはなくなりました。TwiProwlの他にもIMAProwlというものもあり、EgoProwlを加えてProwl三兄弟とか、通知御三家と勝手に呼んでいます。 @northeye さん、 @tom_go さん、こんな素晴らしいものを作っていただきありがとうございます。