Twitter通知
はじめまして。mooです。
昨年からHinemos開発チームに所属してます。以後お見知りおきを。
さて、Hinemos開発チームでは時折「こんな機能面白くない!?」とおもしろ新機能についての雑談が花咲くことがあります。
今回はそんな雑談のネタに登った『Twitter通知』を実現してみます。
実現方法は簡単!Hinemosコマンド通知を利用してHinemosマネージャからTwitterサーバにアクセスするだけです。
Twitter APIを利用できればどのような方法でも実現可能なのですが、今回は個人的な好みから使用言語をPythonとし、
Python用Twitter APIライブラリ「tweepy」を利用してアクセスします。
#ちなみに、使用するライブラリはOAuth認証に対応しているものにするのが無難です。
twitter通知の実現の流れは下のとおり。
なお、当方の環境はHinemos 3.2.0 / Oracle Enterprise Linux 5.5(32bit) / Python 2.6で試しました。
1. twitter通知用のtwitterアカウントを作成する。
2. 上記アカウントでログインした状態で下記URLにアクセスし、アプリケーションを登録する。
3. 登録後に表示されるOAuth認証に関する情報をメモする。
4. tweepy環境を構築する。
-
- Python2.6+推奨。
- http://code.google.com/p/tweepy/
5. pythonコードを用意し、3でメモしたOAuth認証に関する情報を反映させる。
#!/opt/python2.6/bin/python # -*- coding: utf-8 -*- import tweepy import sys #コマンドライン引数操作用 # get params from command line argvs = sys.argv argc = len(argvs) # check usage if(argc != 4): print 'Usage: python %s ${PLUGIN_ID} ${MONITOR_ID} ${PRIORITY}' % argvs[0] quit() # set params for OAuth consumer_key = '<Consumer key>' consumer_secret = '<Consumer secret>' access_token = '<Access Token (oauth_token)>' access_token_secret = '<Access Token Secret (oauth_token_secret)>' # create OAuth handler auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # set access token to OAuth handler auth.set_access_token(access_token, access_token_secret) # create API api = tweepy.API(auth_handler=auth) # post api.update_status("Hinemosなう。(プラグイン:%s, 監視ID:%s, 重要度:%s)" % (argvs[1], argvs[2], argvs[3])) print "Hinemosなう。(プラグイン:%s, 監視ID:%s, 重要度:%s)" % (argvs[1], argvs[2], argvs[3])
6. 任意の監視設定に対してコマンド通知を設定する。
すると、次の通知のタイミングでtweetされます。
「プラグインID」、「監視ID」、「重要度」がしっかり埋めこまれているのがわかります。
Twitterの140字制約を考えて「オリジナルメッセージ」等は省きました。
ちなみに、下部に表示されてる「testHinemos」という名前は、登録したアプリケーション名です。
ということで、無事、Twitter通知が実現しました。
このTwitterアカウントの設定で「ツイートを非公開」とすればTweetを閲覧できるユーザを限定できます。意外に実用的かも?
Hinemosマネージャがインターネットに接続できる環境にある方はそんなに多く無いと存じますが、よろしければ一度お試しあれ!