3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Slackの全チャンネルからPythonで投稿順に1000件を取得してtxtファイルにまとめる

Last updated at Posted at 2019-12-28

なぜそれをやろうと思ったのか

形態素解析のためのデータがほしくてやった。しかたなかった。

手順

まずは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が入っていてそのままでは形態素解析には使えません。各自クリーニングしてご利用ください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?