Slack からエクスポートしたデータの読み方

ワークスペースのデータをエクスポートすると、ZIP ファイルをダウンロードしてメッセージ履歴とファイルのリンクにアクセスできます。  


エクスポートの形式

エクスポートの形式は、実行するエクスポートのタイプによって異なります。

  • パブリックチャンネルのみ : データは JSON 形式でエクスポートされます。
  • すべてのチャンネルと会話 : データは JSON 形式でエクスポートされます。
  • 1 人のユーザーのチャンネルと会話 : データは JSON または TXT 形式でエクスポートできます。


エクスポートファイルに格納されるもの

JSON ファイル

TXT ファイル

エクスポートが完了すると、ワークスペースのデータと、ワークスペースにアップロードされたファイルへのリンクを含む ZIP ファイルが届きます。エクスポートの種類に応じて、ZIP ファイルには以下のものが格納されます。

  パブリックチャンネルのみ すべてのチャンネルと会話
チャンネル (channels.json)

ダイレクトメッセージ (dms.json)  

プライベートチャンネル (groups.json)  

アプリのアクティビティログ (integration_logs.json)

グループダイレクトメッセージ (mpims.json)  

メンバー (users.json)

全パブリックチャンネルのフォルダ

全プライベートチャンネルのフォルダ

 

全ダイレクトメッセージのフォルダ

 

Tip :Enterprise Grid プランの場合、オーガナイゼーション全体のデータ、または特定のワークスペースのデータのエクスポートを選択できます。特定のワークスペースのエクスポートには、選択されたワークスペースのパブリックチャンネルとプライベートチャンネルが含まれますが、マルチワークスペースチャンネルは含まれません。

1 人のユーザーの会話のデータを TXT 形式でエクスポートする場合、エクスポートが完了したら、選択したユーザーから送信されたすべてのメッセージとファイルを含む ZIP ファイルをダウンロードします。ZIP ファイルには次の 3 つのフォルダが含まれます。

  • channels
  • dms
  • files

それぞれのフォルダには、選択された日付範囲内にある、ユーザーが参加した会話や送信したファイルを格納した TXT ファイルのセットが含まれます。

注意 :エクスポート時に日付範囲を申請した場合、その会話で指定の日付範囲にメッセージが送信されなかった場合でも、Slack はそのユーザーが参加したすべての会話を返します。この場合、エクスポートファイル内でそのチャンネルにはなんのメッセージも表示されません。


エクスポートファイルの内容

JSON ファイル

TXT ファイル

エクスポートした ZIP ファイルを解凍すると、チャンネルまたはダイレクトメッセージごとにフォルダが表示されます。それぞれのフォルダ内には、その会話に投稿されたメッセージの JSON 形式のファイルが、日付順に整列されています。

会話の種類ごとに参照用ファイルが用意されています。パブリックチャンネルは channels.json ファイル、プライベートチャンネルは groups.json ファイル、ダイレクトメッセージは dms.json ファイルとなります。これらのファイルには、ユーザーとチャンネルの ID が含まれています。特定の会話を見つけるには、チャンネルと参照用ファイルの両方を使う必要があります。例えば、次のような方法で特定のメッセージを見つけることができます。

  1. users.json ファイルを開き、目的のユーザーを検索します。見つけたユーザーの ID をメモします。
  2. 次に channels.json、groups.json、または dms.json ファイルを開き、「メンバー」セクションで、該当する 2 つの ID (ユーザーとチャンネル) が含まれた会話を検索します。その会話のチャンネル名または会話 ID をメモします。
  3. メインのエクスポートフォルダ内で、メモしたチャンネル名または会話 ID がタイトルに使われているフォルダを見つけます。そのフォルダに、メッセージ送信日ごとに分類された複数の JSON ファイルが含まれています。

注意 : エクスポートファイルにフォルダが表示されるのは、エクスポートした日付範囲にメッセージがある場合のみです。例えば、30 日を経過したパブリックチャンネルのメッセージを削除するように保存ポリシーを設定していて、日付範囲に 31 日以上前を選択した場合は、エクスポートにパブリックチャンネルのフォルダは含まれません。

ZIP ファイル内の各フォルダには、ワークスペースからのさまざまなデータが格納されます。channels フォルダには、1 人のユーザーが参加したチャンネルとグループダイレクトメッセージのそれぞれの TXT ファイルが格納されます。dms フォルダには、1 人のユーザーが参加した 1 対 1 のダイレクトメッセージの TXT ファイルが格納されます。

会話の TXT ファイルには、チャンネルの名前またはダイレクトメッセージに含まれるユーザー名に従って名前がつけられます。例えば、#general チャンネルのデータは general.txt になります。ダイレクトメッセージのデータは mcollins-jjordan.txt のようなタイトルになります。

特定の会話のメッセージを表示するには、次のように操作します。

  1. channels または dms フォルダを開きます。
  2. スターをつけたいチャンネルまたはダイレクトメッセージを開きます。

TXT ファイルを開くと、Messages というヘッダーの下に会話のメッセージ履歴を確認できます。メッセージ履歴には、エクスポート対象のシングルユーザー、および会話に参加したその他のユーザーが送信したメッセージが含まれます。

注意 :編集または削除されたメッセージは、それらを保持しておくよう保存ポリシー設定されている場合にのみエクスポートファイルに表示されます。


メッセージの読み方 

JSON ファイル

TXT ファイル

JSON 形式のメッセージデータには以下のフィールドが含まれます。

  • "type" : 
    データがメッセージであることを表します
  • "user" : 
    このメッセージを送信したメンバーの ID を示します
  • "text" : 
    実際のメッセージが含まれます
  • "ts": 
    メッセージが投稿されたタイムスタンプ。このタイムスタンプは、オンラインの UNIX 時間変換ツールを使って日付に変換できます。

メッセージは、メッセージ送信日の日付のファイルに記録されます。以下、とてもシンプルなメッセージを例にあげます。

{
   "type": "message",
   "user":"U2147483697",
   "text":"皆さん、こんにちは",
   "ts":"1355517523.000005"
}

注意 :メッセージによっては “attachments” 値が含まれる場合があります。この値には、メッセージに添付されたオブジェクトのリストが含まれます。 

Tip : "channel""user" フィールドの英数字の ID が何を意味するのかは、エクスポートに含まれるそれぞれの channels.json と users.json ファイルを参照してください。

メッセージのサブタイプ

Slack のメッセージにはメンバーが共有するものに加え、メッセージのサブタイプと呼ばれるアプリやボット、インテグレーションからのメッセージや、メンバーがチャンネルに参加した時に表示されるような Slack からのメッセージがあります。以下、メッセージのサブタイプの一覧です。

 

タイプ 説明
bot_message アプリやインテグレーションによる投稿メッセージ
me_message /me スラッシュコマンドでメッセージが送信された
message_changed メッセージが変更された
message_deleted メッセージが削除された
channel_join メンバーがチャンネルに参加した
channel_leave チャンネルからメンバーが抜けた
channel_topic チャンネルのトピックが更新された
channel_purpose チャンネルの目的が更新された
channel_name チャンネル名が変更された
channel_archive チャンネルがアーカイブされた
channel_unarchive アーカイブされたチャンネルが復元された
group_join メンバーがグループに参加した
group_leave メンバーがグループから抜けた
group_topic グループのトピックが更新された
group_purpose グループの目的が更新された
group_name グループ名が変更された
group_archive グループがアーカイブされた
group_unarchive アーカイブされたグループが復元された
file_share ファイルがチャンネルで共有された
file_reply ファイルに返信が追加された
file_mention チャンネルでファイルがメンションされた
pinned_item チャンネルにアイテムをピン留めした
unpinned_item チャンネルでアイテムのピンが外された

 

ブックマークに登録したアイテム、ピン留めしたアイテム、絵文字リアクション

メッセージにインタラクトした人がいた場合は、それを示す追加プロパティが含まれます。

  • “is_starred”: true, と表示される場合には、メンバーによってメッセージがブックマークに登録されていることを示します。メッセージが誰のブックマークにも登録されていない場合は、この値は表示されません。
  • どこかにメッセージがピン留めされている場合には、“pinned_to” の横にロケーションの ID が表示されます。
  • 「reactions」 が存在する場合、メッセージに追加されたすべての絵文字リアクション(「name」)、リアクションしたメンバーの数(「count」)、リアクションしたメンバーのリスト(「users」)の一覧が記載されます。
{
   "type": "message",
   "channel":"C2147483705",
   "user":"U2147483697",
   "text":"皆さん、こんにちは",
   "ts":"1355517523.000005",
   "is_starred": true,
   "pinned_to": ["C024BE7LT", ...],
   "reactions": [
       {
           "name": "astonished",
           "count":3,
           "users": [ "U1", "U2", "U3" ]
       },
       {
           "name": "facepalm",
           "count":1034,
           "users": [ "U1", "U2", "U3", "U4", "U5" ]
       }

注意 :"reactions" 値には、リアクションしたメンバー全員が必ず含まれるとは限りませんが、"count" 値には実際にリアクションしたユーザー全員の数が表示されます。

メッセージは、会話の中で送信された順に表示されます。メッセージには次の内容が含まれます。

  • メッセージが送信されたタイムスタンプ(GMT)。
  • メッセージを送信した人の Slack ユーザー名。
  • メッセージの内容。

これはシンプルなメッセージの表示例です。

[2020-04-20 13:47:27] <jjordan> 営業チームのチャンネルにようこそ!チームはかつてない速度で拡大中

エクスポートファイルでは、スレッド内のメッセージとチャンネルに送信されたメッセージが区別されません。スレッド内のメッセージはすべて、会話の流れの中でほかのメッセージと混じって表示されます。

Tip :メッセージ内のメンションでは、表示名の前の @ マークが省略されます。


編集されたメッセージデータの読み方

JSON ファイル

TXT ファイル

メンバーはチャンネルで共有したメッセージを編集することがあります。メッセージの変更ログを含むエクスポートの場合、投稿後に編集されたメッセージデータには以下の情報が記載された "edited" 値が含まれます。

  • "user"
    このメッセージを変更したメンバーの ID を示します
  • "ts"
    メッセージが編集されたタイムスタンプ。このタイムスタンプは、オンラインの UNIX 時間変換ツールを使って日付に変換できます。

このような編集は、編集が行われた日付のファイルに記録されます。以下に例をあげます。

{
        "type": "message",
        "user":"UTXHL6F8A",
        "upload": false,
        "ts":"1590101612.000000",
        "text":"これは編集後のメッセージです。",
        "previous": {
            "text":"これはオリジナルのメッセージです。",
            "blocks": [
                {
                    "type": "rich_text",
                    "block_id":"Bts",
                    "elements": [
                        {
                            "type": "rich_text_section",
                            "elements": [
                                {
                                    "type": "text",
                                    "text":"これはオリジナルのメッセージです。"
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "original_ts":"1590101603.000300",
        "subtype": "message_changed",
        "editor_id":"UTXHL6F8A",
        "blocks": [
            {
                "type": "rich_text",
                "block_id":"O+PJ",
                "elements": [
                    {
                        "type": "rich_text_section",
                        "elements": [
                            {
                                "type": "text",
                                "text":"これは編集後のメッセージです。"
                            }
                        ]
                    }
                ]
            }
        ]
    }

編集されたメッセージは、会話の TXT ファイルの末尾、Message edits ヘッダー以下に表示されます。編集されたメッセージには次の内容が含まれます。

  • メッセージが編集されたタイムスタンプ(GMT)。
  • メッセージを更新した人のユーザー名。
  • 元のメッセージが送信されたタイムスタンプ。
  • 元のメッセージの編集前の内容。編集後のメッセージは、Messages セクションの会話の流れの中に表示されます。

以下に例をあげます。

[2020-04-20 13:47:27] <jjordan> 更新済み [2020-04-20 13:47:09] <jjordan> 営業チームのチャンネルにようこそ!


削除されたメッセージデータの読み方

JSON ファイル

TXT ファイル

メンバーはチャンネルで共有したメッセージを削除することがあります。削除ログを記録するように保存ポリシーを設定している場合、削除されたメッセージには、以下の情報が記載された "previous" 値が含まれます。

  • "text"
    削除されたメッセージのテキストが含まれます
  • "ts"
    メッセージが削除されたタイムスタンプを示します。このタイムスタンプは、オンラインの UNIX 時間変換ツールを使って日付に変換できます。

メッセージの削除は、メッセージ削除日の日付のファイルに記録されます。以下に例をあげます。

{
       "type": "message",
       "user":"UTXHL6F8A",
       "upload": false,
       "ts":"1590101824.000000",
       "text": "",
       "previous": {
           "text":"これは削除されたメッセージです。",
           "blocks": [
               {
                   "type": "rich_text",
                   "block_id":"ABSkQ",
                   "elements": [
                       {
                           "type": "rich_text_section",
                           "elements": [
                               {
                                   "type": "text",
                                   "text":"これは削除されたメッセージです。"
                               }
                           ]
                       }
                   ]
               }
           ]
       },
       "original_ts":"1590101818.000600",
       "subtype": "message_deleted",
       "editor_id":"UTXHL6F8A"
   }

削除されたメッセージは、会話の TXT ファイルの末尾、Message edits ヘッダー以下に表示されます。削除されたメッセージには次の内容が含まれます。

  • メッセージが削除されたタイムスタンプ(GMT)。
  • メッセージを削除した人のユーザー名。
  • 元のメッセージが送信されたタイムスタンプ。
  • 元のメッセージの内容。

これは削除されたメッセージの表示例です。

[2020-04-20 13:47:47] <jjordan> 削除済み [2020-04-20 13:47:42] <jjordan> 先週の販売成績は X でした!


ファイルを表示する方法

JSON ファイル

TXT ファイル

JSON 形式の Slack エクスポートファイルに、ワークスペースからのファイルは含まれません。エクスポートファイルのメッセージ履歴 JSON ファイルに含まれた一連のファイルリンクからワークスペースのファイルにリダイレクトできます。これらのリンクを JSON ファイルからコピーしてブラウザに貼り付けると、ファイルを開くことができます。

特定のファイルを見つける方法は以下のとおりです。

  1. ファイルが共有された会話のフォルダを開きます。
  2. ファイルが共有された日付と対応する JSON ファイルを見つけます。
  3. ファイルが共有されたメッセージの詳細の “files:” セクションにファイルへのリンクがあります。

注意 :ファイル、またはファイルを共有していたチャンネルやワークスペースを削除してしまうと、エクスポート内のファイルへのリンクを使ってファイルにアクセスできなくなります。

ZIP ファイルの files フォルダには、エクスポート時に選択した 1 人のユーザーが送信したファイルが格納されます。ファイルのタイトルは、次のように channels および dms にある TXT ファイル内で会話の流れの中に表示されます。

[2020-04-20 13:47:27] jjordan : このファイルを共有しました : F01243S814M

特定のファイルを見つける方法は以下のとおりです。

  1. ファイルが共有された会話の TXT ファイルを開きます。
  2. メッセージ履歴から開きたいファイルを見つけ、対応するファイルのタイトルをメモしておきます(例 : F01243S814M)。
  3. files フォルダを開き、そのタイトルのファイルを選択して開きます。