チームのスラックドメインで送信されたすべてのメッセージを取得したい。ただし、データをXMLまたはJSONで受信することを希望しますが、ほぼすべての形式でデータを処理できます。
これらのメッセージをすべて取得するにはどうすればよいですか?出来ますか?そうでない場合、特定のチャネルのすべてのメッセージを取得できますか?
APIを使用してこれを動的に行う必要がある場合は、 channels.listメソッド を使用してチーム内のすべてのチャネルをリストし、 channels.historyメソッド を使用して、各チャンネル。これには、DMまたはプライベートグループは含まれないことに注意してください。
これを一度だけ行う必要がある場合は、 https://my.slack.com/services/export にアクセスして、チームのメッセージアーカイブを一連のJSONファイルとしてエクスポートします
このPythonスクリプトは単純な実行ですべてをJSONにエクスポートします: https://Gist.github.com/Chandler/fb7a070f52883849de35
ディレクトリが作成され、ダイレクトメッセージまたはチャネルを除外するオプションがあります。
インストールする必要があるのは、単にpip install slacker
であるslackerモジュールだけです。次に、--token='secret-token'
で実行します。現時点で利用可能なレガシートークンが必要です here .
ダイレクトメッセージ履歴のダウンロードを探している方は、 this ノードベースのcliツールを使用すると、DMとIMからJSONとCSVの両方でメッセージをダウンロードできます。私はそれを使用しましたが、非常にうまく機能します。
新しい Conversations API を使用すると、このタスクが少し簡単になりました。完全な概要は次のとおりです。
チャンネルからのメッセージの取得
新しいAPIメソッド conversations.history
は、トークンがアクセスできる限り、あらゆるタイプの会話/チャンネル(パブリック、プライベート、DM、グループDM)からメッセージをダウンロードできるようにします。
このメソッドはページングもサポートしているため、大量のメッセージをダウンロードできます。
IDを名前に解決する
このメソッドはIDのみの生のJSON形式でメッセージを返すため、追加のAPIメソッドを呼び出してこれらのIDをプレーンテキストに解決する必要があることに注意してください。
users.list
conversations.list
bots.info
(公式のbots.list
メソッド、ただし 非公式なもの があり、場合によっては役立つ可能性があります)スレッドの取得
さらに、 conversations.replies を使用して、スレッドをスレッドにダウンロードします。スレッドは会話内の会話のように機能するため、個別にダウンロードする必要があります。
スレッド処理の詳細については、公式ドキュメントの このページ をご覧ください。