概要
Slackの投稿内容をWikiサイトCrowiに登録するPythonスクリプト。
無料版のSlackの場合、メッセージが1万件を超えると自動で古いメッセージが削除されてしまう。
無料版でも過去のメッセージは参照できるようにしたい!という貧乏根性からCrowiに登録できるようなスクリプトを作った。
Crowiは内部でElasticsearchにデータを格納しているため、メッセージの検索もしやすく大事な内容が埋もれなくなったのも良かった。
使い方
Slack APIトークンの取得
権限的には強すぎて良くないがlegacy tokenを利用する。
以下のサイトから取得する。
※legacy tokenはroot権限のようなもので危険なので流出しないように注意
Crowi APIトークンの取得
GitHubからソースコードをダウンロード
$ git clone https://github.com/hamaryz/slack2crowi.git
$ cd slack2crowi
APIトークン情報などをセット
setup.pyを実行して先ほど取得したAPIトークンやCrowiのURL情報をセットする。
$ python setup.py
input slack token: [Slack APIトークンを入力]
input crowi token: [Crowi APIトークンを入力]
input crowi URL(including http or https): [CrowiのURLを入力] (ex. https://example.com)
setup.pyを実行するとconfig.iniが作成され、中にトークン情報が埋められる。
$ ls
README.md crowi.py setup.py slack2crowi.py
config.ini preprocess.py slack.py
登録スクリプトの実行
登録したいチャネル名を指定してslack2crowi.pyを実行する。
$ python slack2crowi.py -n [Slackチャネル名]
出力
エラーが発生しなければ、Crowiの以下のパスにSlackメッセージが登録される。
/slack/[Slackチャネル名]
まとめ
Slackの投稿内容をCrowiに簡単に登録できるようになった。
CrowiのフォークであるGrowiも同じAPIを持っているので登録ができる。
あとはcronなどに実行コマンドを登録しておけば自動でCrowiに過去のメッセージをためられる。
いまはlegacy tokenを使っていたり、出力メッセージも直近の100件のみだったり、添付ファイルも登録しないなどと、人によっては使いにくい部分もあるので、要望があれば改善していこうと思う。
最後にソースコードはこちら
https://github.com/hamaryz/slack2crowi