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

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


エクスポートの形式

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

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


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

JSON ファイル

TXT ファイル

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

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

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

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

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

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

メンバー(users.json)*

コンテンツのフラグ†(content_flags.json)

 

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

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

 

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

 

全 canvas の URL(canvases.json)**

* Enterprise Grid オーガナイゼーションからデータをエクスポートする場合、このフォルダの名前は「org_users.json」になります。
** パブリックチャンネルからのみデータをエクスポートする場合、このフォルダにはパブリックチャンネルで共有された canvas のみが含まれます。
† Enterprise Grid プランで、コンテンツのフラグが有効になっている場合のみ使用できます。

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

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

  • 集約
  • dms
  • ファイル

それぞれのフォルダには、選択された日付範囲内にある、ユーザーが参加した会話や送信したファイルを格納した 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]  営業チームのチャンネルにようこそ!チームはかつてない速度で拡大中

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


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

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


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

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


フラグつきコンテンツを表示する方法

フラグつきコンテンツが有効な Enterprise Grid オーガナイゼーションでは、フラグつきコンテンツとレビュー担当者が残したコメントも、「すべてのチャンネルと会話」のエクスポートに含められます。

JSON ファイル

TXT ファイル

エクスポートには content_flags フォルダも含まれます。このフォルダでは、すべてのフラグつきメッセージがそれぞれ個別の JSON ファイルになります。この JSON ファイルには以下の情報が含まれます。
  • 「flagger_user_id」
    メッセージにフラグをつけたユーザーの ID。
  • 「content_user_id」
    フラグつきメッセージを書いたユーザーの ID。
  • 「date_created」
    メッセージにフラグがつけられたタイムスタンプ。
  • 「comments」
    レビュー担当者が残したコメント。タイムスタンプ、コメントを残した人、コメントが削除されたかどうかといった詳細事項が含まれます。
  • 「flagged_message」
    フラグつきメッセージの詳細。メッセージの内容、メッセージ作成者のプロフィール情報、レビューのステータスが含まれます。

以下の例を参考にしてください。

[
{
    "flag": {
        "id": "Fg016WC7RU9Z",
        "flagger_team_id": "E019B299WNQ",
        "flagger_user_id": "UTXHL6F8A",
        "content_user_id": "U014QD5SE67",
        "content_team_id": "T019B299WNQ",
        "date_created": 1727216082
    },
    "comments": [],
    "flagged_message": {
        "subtype": "moderated",
        "text": "This is the content of a message that was flagged for review",
        "user": "U014QD5SE67",
        "hidden": false,
        "type": "message",
        "ts": "1727216072.664659",
        "client_msg_id": "eba94731-3cf1-4005-90fa-49e0930fc9b3"
    }
}
]

.TXT エクスポートにはフラグつきコンテンツが含まれません。


ファイルを表示する方法

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 フォルダを開き、そのタイトルのファイルを選択して開きます。


canvas を表示する方法

JSON ファイル

TXT ファイル

JSON 形式の Slack エクスポートファイルには、取得できるすべての canvas を HTML でダウンロードするリンクを含む特別なファイルが含められます。

canvas

目的の canvas には次のようにしてアクセスします。

  1. canvases.json を開き、canvas のタイトルを検索します。
  2. 対象の canvas に対応する詳細情報から、url_private_download を探します。
  3. その URL をブラウザにペーストして canvas をダウンロードすれば、コンテンツを読むことができます。
  {
    "id":"F05UA7XQXHS",
    "created":1695846651,
    "name":"This_canvas_is_shared_in_General",
    "title":"This canvas is shared in General",
    "mimetype": "application/vnd.slack-docs",
    "filetype": "quip",
    "pretty_type":"Canvas",
    "user":"U018Y4QJK0E",
    "editable": true,
    "size":48,
    "mode": "quip",
    "is_public": true,
    "is_tombstoned": false,
    "public_url_shared": false,
    "date_delete":0,
    "url_private_download": "https://files.slack.com/files-pri/T019B299WNQ-F05UA7XQXHS/download/canvas?t=xoxe-1317077336772-EXAMPLE-TOKEN-INFO",
    "shares": [
      {
        "team":"T019B299WNQ",
        "channel":"C019UMH0P40"
      }

チャンネル canvas

目的のチャンネル canvas には次のようにしてアクセスします。

  1. チャンネル canvas が属する会話のフォルダを開きます。
  2. canvas_in_the_conversation.json を探します。そこに url_private_download があります。
  3. その URL をブラウザにペーストして canvas をダウンロードすれば、コンテンツを読むことができます。
{
    "id":"F05U12FNWT0",
    "created":1695845524,
    "name":"GENERAL_CHANNEL_CANVAS",
    "title":"GENERAL CHANNEL CANVAS",
    "mimetype": "application\/vnd.slack-docs",
    "filetype": "quip",
    "pretty_type":"Canvas",
    "user":"USLACKBOT",
    "editable": true,
    "size":17,
    "mode": "quip",
    "is_public": true,
    "is_tombstoned": false,
    "public_url_shared": false,
    "date_delete":0,
    "url_private_download": "https:\/\/files.slack.com\/files-pri\/T019B299WNQ-F05U12FNWT0\/download\/canvas?t=xoxe-1317077336772-EXAMPLE-TOKEN-INFO",
    "shares": [
        {
            "team":"T019B299WNQ",
            "channel":"C019UMH0P40"
        }

注 :ワークスペースやオーガナイゼーションにおいてすべての会話のデータエクスポートが有効になっている場合、url_private_download URL から canvas のバージョン履歴をダウンロードできます。

canvas のコメント

canvas のコメントは、エクスポートファイルの専用フォルダにエクスポートされます。エクスポートファイル内のコメントを canvas に関連づける方法は以下のとおりです。

  1. file_conversations.json を開き、canvas のタイトルを検索します。
  2. 「name:」フィールドから、コメントを参照したい canvas の FC ID をメモします(例 : FC:F05UA7XQXHS)。
  3. エクスポートに戻り、該当する FC ID のフォルダを探します。
  4. FC フォルダを開いて、その canvas でのコメントを表示します。コメントは作成された日付順になります
{
    "id":"C05UA7XQXHS",
    "name":"FC:F05UA7XQXHS:This canvas is shared in General",
    "created":1695846691,
    "creator":"USLACKBOT",
    "is_archived": false,
    "members": [
        "U018Y4QJK0E"
    ],
    "topic": {
        "value": "",
        "creator": "",
        "last_set":0
    },
    "purpose": {
        "value": "",
        "creator": "",
        "last_set":0
    }

対象ユーザーが接触したことがある canvas や、メンバーであるチャンネルで共有された canvas については、関連する次のようなファイルとフォルダが TXT エクスポートに包含されます。

  • canvas_in_the_conversation.txt
    このファイルは各会話フォルダ内にあり、その会話の canvas のダウンロードリンクが含まれます。
  • Canvases 
    このフォルダには、対象ユーザーがアクセスできる各 canvas 固有のサブフォルダが含まれます。フォルダ内では HTML 形式の canvas にアクセスできます。
  • ファイル
    このフォルダには、対象ユーザーがアクセスでき、埋め込みファイルがある各 canvas 固有のサブフォルダが含まれます。

特定の canvas を見つける方法は以下のとおりです。

  1. Canvases フォルダを開き、対象ユーザーがアクセスできる全 canvas のリストを表示します。リストはフォルダごとに整理されています。
  2. 表示する canvas があるフォルダを開き、canvas の HTML ファイルを開きます。

注 : メッセージリンクがカードとして表示されている場合やユーザーがメンションされた場合は、canvas に埋め込まれたファイルやウェブリンクを見るために、FC フォルダも参照する必要があります。