なぜそれをやろうと思ったのか
形態素解析のためのデータがほしくてやった。しかたなかった。
手順
まずはslackのTokenを取得してください。
こちらの記事などが参考になると思います。
https://qiita.com/ykhirao/items/0d6b9f4a0cc626884dbb
コード
githubにまとまっているので基本はこちらを見ていただいてpullして必要ライブラリをインストールして実行していただければ問題ありません。まとまったoutput.txtが出てきます。
https://github.com/hiwatee/get-txt-slack-python
import os
import requests
from os.path import join, dirname
from dotenv import load_dotenv
def main():
# .envから環境変数を読み込み
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
token = os.environ.get("TOKEN")
host = os.environ.get("HOST")
# チャンネルリストを取得・整形
url = host + 'channels.list?token=' + token + '&exclude_archived=true'
r = requests.get(url)
data = r.json()
channels = [{'id': channel['id'], 'name': channel['name']}
for channel in data['channels']]
for channel in channels:
# 各チャンネルから上位1000件を取得する
url = host + 'channels.history?token=' + \
token + '&channel=' + channel['id'] + '&count=1000'
r = requests.get(url)
data = r.json()
# ファイルに書き込む
with open(dirname(__file__) + 'output.txt', 'a') as f:
for message in data['messages']:
print(message['text'], file=f)
if __name__ == '__main__':
main()
より詳しい解説
実際の利用にあたってはpython-dotenvが必要となります。
利用している意図としては環境変数を.envで使いまわし権限管理をしやすくするとともにgit上に自分のTokenが流出しないために利用しています。
python-dotenvは
pip install python-dotenv
でインストール可能です。
.env.txtとしてサンプルの書き方を載せてありますので書き換えてご利用ください。
ちなみに
取り出したtxtファイルはリアクションやbotメッセージ、Reactionが入っていてそのままでは形態素解析には使えません。各自クリーニングしてご利用ください。