Slackerを使った簡単なbot例
まず,Slackerをインストールします.
pip install slacker
Slackerについては,公式サイトを参照してください.
github.com
次に,slack api tokenを発行します.
Slack Web API | Slackにアクセスし,Generate test tokensをクリックすると発行できます.
得られたslack api tokenを環境変数にSLACK_API_TOKENとして設定しておきます.
Slackerの公式サイトを参考に,"hello from slacker"とpostするだけのbotを作ります.
先程環境変数に設定したslack api tokenをスクリプト内で読み込んでいます.
#!/usr/bin/python # -*- coding: utf-8 -*- import os from slacker import Slacker def main(): api_token = os.environ["SLACK_API_TOKEN"] slack = Slacker(api_token) slack.chat.post_message("#random", "hello from slacker") if __name__ == '__main__': main()
このスクリプトを実行すると,randomチャンネルで"hello from slacker"とpostされるはずです.
AWS EC2上でcronを使って定期post
EC2のcronに上のスクリプトを設定して,定期postするようにします.
まず,EC2上に先程のスクリプトをscpなり何なりでアップロードしておきます.
次に,EC2上でcrontabを設定します.
crontab -e
crontabの編集画面が出て来るので,先程のスクリプトを定期実行するように設定します.
ここで,slack api tokenもcrontabの設定ファイルに書いておきます.
cronの環境変数の設定方法は色々あると思いますが,とりあえず簡単な書き方ということで…
SLACK_API_TOKEN='<your-slack-api-token-goes-here>' 0-59 * * * * '<your-script-path>'
保存して終了すると,1分ごとに定期postされます.
その他
hubotでも良いんですけど,coffee scriptをあんまり触れたことが無かったので…