Neos21 / slack-exporter

Slack Exporter

Home Page:https://neos21.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Slack Exporter

Slack のチャンネルから全メッセージをダウンロードするスクリプトです。

対象範囲は、パブリックチャンネル、プライベートチャンネル、複数人のダイレクトメッセージ、ダイレクトメッセージです。ただし実行したユーザーが閲覧権限を持っているものに限ります。

動作環境

  • Python: 3.9.13
  • requests: 2.28.1

OAuth トークンの入手

Slack Web API を実行するために、Slack App を作成して OAuth トークンを入手します。

  1. Slack App を作成する。App の作成ページを開き、Create New App を押す。
    • Create New App
  2. From an app manifest を選択し、manifest.yaml の内容を貼り付けて、あとは指示通り進む。
    • From an app manifest
    • Paste manifest
  3. 作成した App の Basic Information ページで Install to Workspace を押し、インストール先のワークスペースを選択する。
    • Install to Workspace
  4. OAuth & Permissions ページの User OAuth Token を控えておく。
    • User OAuth Token

使い方

  • slack_export.py を以下のように実行します。
  • token パラメータには、先ほど入手したトークンを指定してください。
  • 以下の例では、実行するとカレントディレクトリに output ディレクトリが作成され、その中にチャンネルごとに JSON 形式で保存されます。
$ pip install -r requirements.txt

$ python slack_export.py \
    --token xxxxx \
    --output-dir output
INFO:__main__:Fetching users
INFO:__main__:xxx users fetched
INFO:__main__:Fetching channels
INFO:__main__:xxx channels fetched
INFO:__main__:Fetching messages: channel_name='xxxxx'
INFO:__main__:xxx messages/replies fetched
...

出力ファイルの例

$ head -n 10 output/random.json
[
    {
        "subtype": "channel_join",
        "text": "<@UXXXXXXXXXX>さんがチャンネルに参加しました",
        "ts": "0000000000.000000",
        "type": "message",
        "user": "UXXXXXXXXXX"
    },
    ...

About

Slack Exporter

https://neos21.net/

License:MIT License


Languages

Language:Python 100.0%