EgoProwlとは @northeye さん作のTwiProwlを @tom_go さんがエゴサーチ用に修正したものです。サーバーからパブリックタイムラインを監視して、指定キーワードを検出するとProwlに通知してくれます。
自分専用の通知サービスなのでBoxcarやクライアントアプリ開発元が提供する気まぐれなプッシュサービスではなく、おサボりは無論遅延もほとんどなく通知されます。TwiProwlを使い始めて2年近くなりますが安定稼働しています。
以下は「EgoProwl」をキーワードとして通知されたサンプルです。
受信した通知(通知センターでもバナーでも同様)を開くとProwlが立ち上がり、Tweetbotで開くか聞いてきます。Launchを選びます。
Tweetbotで通知されたツイートを直接開きます。パブリックタイムラインを監視しているのでフォローしていないユーザやリストに入れていないユーザのツイートも拾ってきます。
ブロガーがエントリ直後に読者の反応や、アプリ開発者がリリース直後にユーザの反応などタイムリーに確認し、サポートやフォローするのに威力を発揮します。
クライアントアプリは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: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNMA:
APIKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGrowl:
Sticky: 0 # lowest priority to enable stikcy optionAccounts:
–
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が提供するリストからクライアントアプリを設定します。
エゴサーチのキーワード指定の方法
EgoProwlのキーワードはTwitterで保存された検索ワードと同期しています。編集はクライアントアプリで行えるので便利です。
検索キーワードの変更はconfig.ymlで設定しておくと通知することもできます。rate_limit回避のため1回/分に制限されています。
キーワードが英数字の場合はUser Stream APIを使用しているのでほぼリアルタイムで通知されますが、日本語は非対応のようで1回/分です。Twitter API1.1によってrate_limit制限に引っかかる可能性があるので日本語キーワードを指定する場合は別アカウントでの運用が無難です。
レンタルサーバーでの環境構築
さくらレンタルサーバーでの動作を確認しています。参考まで。
Androidの通知アプリ「Notify My Android」にも対応
config.ymlのNMAのAPI Keyを設定するだけです。Androidにはプッシュ通知対応のクライアントやアプリが少ないので重宝します。
謝辞
プッシュ通知が来るの来ないのと悩まされることはなくなりました。TwiProwlの他にもIMAProwlというものもあり、EgoProwlを加えてProwl三兄弟とか、通知御三家と勝手に呼んでいます。 @northeye さん、 @tom_go さん、こんな素晴らしいものを作っていただきありがとうございます。