Skip to content

srvhat09/slack_getChannel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

slack_getChannel

1. ABSTRUCT(概要)

本レポジトリは、Slack の conversations.history API を使ってチャネルデータをダウンロードするアプリになります。 2022年9月1日よりSlackの規約変更に伴い、フリープランユーザは過去90日間のデータのみしか保管されないため過去データをバックアップするために開発しています。 ダイレクトメッセージでは無いチャンネル(#が先頭についたもの)は、Slackのバックアップ機能でバックアップされますが、ダイレクトメッセージは対象外となっています。

因みに、Slackでバックアップしたjsonファイルは、thayakawa-gh氏作成のSlackLogViewerで対応できます。但しWindows専用アプリです。

Slackの消えてしまった過去ログの閲覧ツールを作った。
Github:SlackLogViewer

2. アプリの使い方

2-1. Slack側への設定方法

Yoshitaka KOITABASHI氏が提供されているSlackの特定チャンネルのメッセージをクロールする方法に方法が記載されています。

・Create New Appでアプリを作成する。これはSlack側と通信するためのパイプ役として作成します。
・Permissionを設定します。channels:history, groups:history, im:history, mpim:historyの4つ。特にim系がダイレクトメッセージに該当するようです。
・User OAuth Tokenの取得。これがPython側に設定する内容です。

2-2. アプリの使用方法

・ソース中のtoken部分の内容をUser OAuth Tokenの値の書き換えます。

    token = "xxxx-xxxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

・実行パラメタ

python3 slack_getChannel.py --out out.json --channel A1234B56

・--channel: バックアップしたいチャンネルIDを指定します。チャンネルIDは各Slackのチャンネルの右側最上部のアイコンの右隣に下向きボタンがあります。この中の最下部にチャンネルIDが表示されています。
・--out: 出力するファイル名(拡張子は固定で.jsonが自動的に付与されます)

2-3. 実行後の確認内容について

"client_msg_id"タグが1メッセージの括りになっていると思われます。

ファイル中には、各メッセージの中に"blocks"タグがあり、同じテキストが入っているかと思います。恐らくはスレッド化した際の内容が入るのだろうと勝手に推測はしていますが、検証していません。

時間は"ts"タグの値になります。下記例でts値を入れて実行することで変換することが可能です。pythonの実行環境が無いという方は、Google Colabを実行すると直ぐにpythonの実行ができます。

import datetime

tzinfo=datetime.timezone(datetime.timedelta(hours=9))
ts = datetime.datetime.fromtimestamp(1552455404.000800, tz=tzinfo)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages