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 からのメッセージがあります。以下、メッセージのサブタイプの一覧です :

 

タイプ 説明
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_comment ファイルにコメントが追加された
file_mention チャンネルでファイルがメンションされた
pinned_item チャンネルにアイテムをピン留めした
unpinned_item チャンネルでアイテムのピンが外された

 

隠しサブタイプ

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

以下はメッセージの削除ログです。「"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」 には実際にリアクションしたユーザー全員の数が表示されます。

関連記事

最近チェックした記事