最近、Python Slack SDKを利用してメッセージを取得する機会があったので、その方法を備忘録的にまとめました。
下準備
こちらの記事に分かりやすく記載されていました。
今回はBot Token Scopesで下記2つのスコープを追加しています。
channelsの方でパブリック、groupsの方でプライベートチャンネルのメッセージが覗けるようになります。
モジュールのインストール
pip install slack_sdk
スクリプト
from slack_sdk import WebClient
SLACK_ACCESS_TOKEN = 'hoge'
CHANNEL_ID = 'huga'
client = WebClient(SLACK_ACCESS_TOKEN)
response = client.conversations_history(channel=CHANNEL_ID)
messages = response.get('messages')
hoge欄に下準備の際に控えておいたtoken、huga欄に任意のチャンネルのチャンネルIDを入力してください。
※チャンネルIDの確認方法はこちらの記事に分かりやすく記載されています。
上記の通りtokenとchannelを指定すれば、1回のリクエストで100件のメッセージを取得できます。また、オプションの引数をよしなに設定すれば再帰的にメッセージを取得したり、任意の期間のメッセージを取得することも可能なようです。
※詳しくはconversations.historyをご参照ください。
まとめ
弊社アナリティクスチームでは、他の分析官にナレッジを共有する際にslackを利用しています。
slackはチーム内のコミュニケーションを活発にするにはもってこいのツールですが、ナレッジを蓄積・管理するのは得意ではありません。
Python Slack SDKを活用すればメッセージの情報を簡単に取得できるので、あとはnotionのデータベースに挿入するなりすれば、良い感じのナレッジストックが可能になりそうです。