LoginSignup
3
3

More than 5 years have passed since last update.

Slackの投稿をCrowiに登録する

Last updated at Posted at 2019-03-06

概要

Slackの投稿内容をWikiサイトCrowiに登録するPythonスクリプト。
無料版のSlackの場合、メッセージが1万件を超えると自動で古いメッセージが削除されてしまう。
無料版でも過去のメッセージは参照できるようにしたい!という貧乏根性からCrowiに登録できるようなスクリプトを作った。

Crowiは内部でElasticsearchにデータを格納しているため、メッセージの検索もしやすく大事な内容が埋もれなくなったのも良かった。

使い方

Slack APIトークンの取得

権限的には強すぎて良くないがlegacy tokenを利用する。
以下のサイトから取得する。
※legacy tokenはroot権限のようなもので危険なので流出しないように注意

Crowi APIトークンの取得

ユーザー設定ページからAPIトークンの取得ができる。
スクリーンショット 2019-03-06 11.22.16.png

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

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3