2016年1月30日土曜日

Python で Slack bot の実装をしてみた

Slack の bot ツールでは以下の curl コマンドでメッセージ送信ができる。

Example

$> curl --data "Hello from Slackbot" $'https://<hoge>.slack.com/services/hooks/slackbot?token=<token>&channel=<channel>'
ok
token をパラメータ設定して、データをおみやげにして POST すればメッセージが送られるとのこと。
かなり簡素(Authとか不要)なので勉強のため、Python スクリプトでメッセージ送るスクリプトを書いてみた。
使い勝手とかマジで糞だけど python に慣れるためということで。。

https://github.com/ks6088ts/SlackTool


だいぶ脱線して、以下のこともついでに勉強してた

json ファイルの読み書き
tokenとか見ちゃダメなパラメータ群はまとめて json ファイルに。
Pythonの基礎 ファイル(JSON)の読み込み編
これ参考にしてしまったけど、本来は with 使ってスコープ外れたらリソース開放みたいにナウい感じに書きたい。

Optionparser 機能
help とかあったほうがいいよねと思いたち、追加で実装。
使い勝手がまだ糞だけど使えることは確認した。
必須オプションが抜けてたら死ぬ機能は無いんかな。。。?
https://github.com/ks6088ts/SlackTool/commit/ef2272ca434f2548e1c7195785615558991c0747

パッケージ生成
slack の仕様に依存する処理はまとめてパッケージにしてみた。
ユーザーコード側には抽象化したインタフェースを提供する意図で。
__init__.py をおいて、from package import file_name って感じにロードすればOK
https://github.com/ks6088ts/SlackTool/commit/1bf346bb3d23d0b4601a5df01d6f966d028c156d


とりあえずスクリプトは動いた。
あとやりたいことはこんな感じかな。

- unittest を travis ci で回す
- cron で定期的につぶやく
- 機械学習的なバックエンドを実装していい感じの文章を生成する
- webhook 周りの機能追加

0 件のコメント:

コメントを投稿