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

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


エクスポートの種類

データエクスポートには以下2種類あり、ワークスペースのオーナーと管理者によってのみ実行可能です :

  • Slack の全てのプランで利用可能 : パブリックチャンネルのデータ (公開データ) のエクスポートが可能 
  • プラスプランと Enterprise Grid プランのみ利用可能 : Slack へ申請することにより、ワークスペースの全てのデータのエクスポートが可能 

エクスポートを完了後、ワークスペースデータの .zip ファイルをダウンロードできます。この .zip ファイルに含まれるデータは、エクスポートの種類によって次のように異なります。

  公開データ ワークスペースの全データ
channels.json

dms.json  

groups.json  

integration_logs.json

mpims.json  

users.json

全チャンネルのフォルダ


Slackメッセージ

.zip ファイルを解凍すると、チャンネルごとのフォルダが入っています。それぞれのフォルダには、そのチャンネルで投稿されたメッセージの JSON 形式のファイルが、日付順に並びます。 

シンプルなメッセージの場合

以下、とてもシンプルなメッセージを例にあげます :

{
   "type": "message",
   "channel": "C2147483705",
   "user": "U2147483697",
   "text": "Hello world",
   "ts": "1355517523.000005"
}

データの読み方 

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

  • "type" : 
    データがメッセージであることを表します
  • "channel" :
    メッセージがどのチャンネル (または DM) に投稿されたかを示します
  • "user" : 
    このメッセージを送信したメンバーの ID を示します
  • "text" : 
    実際のメッセージが含まれます
  • "ts" : 
    メッセージが投稿された時間を示します

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

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

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

メッセージの変更ログを含むエクスポートの場合、投稿後に編集されたメッセージデータには「edited」値と以下の値が含まれます :

  • "user" :
    このメッセージを変更したメンバーの ID を示します
  • "ts" :
    メッセージが編集された時間を示します

例えば:

 {
    "type": "message",
    "user": "U06NKBGN8",
    "text": "test:edited",
    "edited": {
        "user": "U06NKBGN8",
        "ts": "1458672560.000000"
    },
    "ts": "1458672049.000002" 
},
{
    "type": "message",
    "message": {
        "type": "message",
        "user": "U06NKBGN8",
        "text": "test:edited",
        "edited": {
            "user": "U06NKBGN8",
            "ts": "1458672560.000000"
        },
        "ts": "1458672049.000002"
    },
    "subtype": "message_changed",
    "hidden": true,
    "channel": "C0AJZ3BT4",
    "ts": "1458672560.000003",
    "original": {
        "type": "message",
        "user": "U06NKBGN8",
        "text": "test:original",
        "ts": "1458672049.000002"
    },
    "edited_by": "U06NKBGN8
}


メッセージのサブタイプ

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

 

タイプ 説明
ボットメッセージ アプリやインテグレーションによる投稿メッセージ
自分へのメッセージ  /me  メッセージが送信された
メッセージ変更 メッセージが変更された
メッセージ削除 メッセージが削除された
チャンネル参加 メンバーがチャンネルに参加した
チャンネル退出 チャンネルからメンバーが抜けた
チャンネルのトピック チャンネルのトピックが更新された
チャンネルの目的 チャンネルの目的が更新された
チャンネル名 チャンネル名が変更された
チャンネルのアーカイブ チャンネルがアーカイブされた
チャンネルの復元 アーカイブされたチャンネルが復元された
グルプ参加 メンバーがグループに参加した
グループから抜ける メンバーがグループから抜けた
グループのトピック グループのトピックが更新された
グループの目的 グループの目的が更新された
グループ名 グループ名が変更された
グループのアーカイブ グループがアーカイブされた
グループの復元 アーカイブされたグループが復元された
ファイル共有 ファイルがチャンネルで共有された
file_reply ファイルに返信が追加された
ファイルのメンション チャンネルでファイルがメンションされた
ピン留めアイテム チャンネルにアイテムをピン留めした
ピンが外されたアイテム チャンネルでアイテムのピンが外された

 

隠しサブタイプ

メッセージのサブタイプの中には、特殊な隠しプロパティを持つものがあります。これには、チャンネルの履歴の一部とみなされるけれども他のメンバーに必ずしも表示されるわけではないメッセージなどが該当します。メッセージの編集・削除ログが隠しサブタイプの良い例です。

以下はメッセージの削除ログです。「"hidden": true」値は、このメッセージがメンバーに表示されないものであることを意味します。

 {
   "type": "message",
   "subtype": "message_deleted",
   "hidden": true,
   "channel": "C024BE91L",
   "ts": "1358878755.000001",
   "deleted_ts": "1358878749.000002",
   "event_ts": "1358878755.000002"
}

 

スター・ピン・リアクション

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

  • 「“is_starred”: true,」と表示される場合には、メンバーによってメッセージにスターが付いている状態であることを示します。メッセージにスターが付いていない場合は、この値は表示されません。
  • どこかにメッセージがピン留めされている場合には、「pinned_to」の横にロケーションの ID が表示されます。
  • 「reactions」 が存在する場合、それまでにメッセージに追加された全てのリアクションに関し、リアクション名 (「name」)・リアクションしたメンバー数 (「count」)・リアクションしたメンバーのリスト (「users」) の情報がリストアップされます。
{
   "type": "message",
   "channel": "C2147483705",
   "user": "U2147483697",
   "text": "Hello world",
   "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」 には実際にリアクションしたユーザー全員の数が表示されます。

関連記事

最近チェックした記事