如何讀取 Slack 資料匯出

匯出工作空間資料後,就可以下載 ZIP 檔案,以存取訊息歷程和檔案連結。  


匯出格式

匯出格式以你執行的匯出類型為準:

  • 僅限公開頻道:資料的匯出會使用 JSON 格式。
  • 所有的頻道和對話:資料的匯出會使用 JSON 格式。
  • 單一使用者的頻道和對話:資料的匯出可以使用 JSON 或 TXT 格式。


匯出檔案包含的內容

JSON 檔案

TXT 檔案

匯出完成之後,你將下載一個 ZIP 檔案,其中包含工作空間資料和重新導向你工作空間檔案的一系列檔案連結。ZIP 檔案內容視匯出類型而定,說明如下:

  僅限公開頻道 所有的頻道和對話
頻道 (channels.json)

私訊 (dms.json)  

私人頻道 (groups.json)  

應用程式活動日誌 (integration_logs.json)

群組私訊 (mpims.json)  

成員 (users.json)*

內容暗號標記 (content_flags.json)

 

每個公開頻道的資料夾

每個私人頻道的資料夾

 

每個私訊的資料夾

 

每個畫板的網址 (canvases.json)**

*如果從 Enterprise Grid 組織匯出資料,此資料夾將命名為「org_users.json」
** 若只匯出公開頻道的資料,此資料夾只會包含在公開頻道中共用的畫板。
† 只適用於已啟用內容暗號標記的 Enterprise Grid 方案。

提示:在 Enterprise Grid 方案中,你可以選擇為整個組織或特定工作空間匯出資料。特定工作空間的匯出包含所選取工作空間中的公開頻道和私人頻道,但不包含跨工作空間頻道

如果你選擇使用 TXT 格式匯出單一使用者對話的資料,在匯出完成後,你將下載 ZIP 檔案,內含你選取之使用者傳送的所有訊息和檔案。ZIP 檔案會包含三個資料夾:

  • 頻道
  • 私訊
  • 檔案

每個資料夾都會有一組 TXT 檔案,其中包含單一使用者在你所選取日期範圍內傳送之對話或檔案的歷程。

注意:如果套用匯出日期範圍,即使在你所選定的日期範圍內,使用者並未在該對話中送出任何訊息,Slack 仍會傳回使用者參與過的所有對話。在此情況下,頻道將不會在匯出檔案中顯示任何訊息。


導覽匯出檔案

JSON 檔案

TXT 檔案

開啟匯出的 ZIP 檔案時,每個頻道或私訊各有一個資料夾。每個資料夾均包含對話中的訊息,訊息會按照日期分屬於不同 JSON 檔案。

你可以看見不同類型對話的參照檔案:公開頻道的 channels.json 檔案、私人頻道的 groups.json 檔案,以及私訊的 dms.json 檔案。以上檔案包含使用者及頻道識別碼。你需要使用頻道及參考檔案,才能找到特定對話。例如,若要尋找一則特定的訊息,可以按照下列方式操作: 

  1. 開啟 users.json 檔案並搜尋要尋找的使用者。記下使用者的識別碼。 
  2. 接下來請開啟 channels.json、groups.json 或 dms.json 檔案,並在「成員」區段中搜尋包含以上兩個識別碼的對話。記下頻道名稱或該對話的對話識別碼。 
  3. 在主要匯出資料夾中尋找標題是該頻道名稱或對話識別碼的資料夾。你會在該資料夾中找到多個 JSON 檔案,因為每次傳送訊息的日期各有一個檔案。

注意:如果你匯出的日期範圍內存在訊息,匯出檔案才會包含資料夾。例如,若將保留政策設為 30 天後刪除公開頻道中的訊息,且選取的日期範圍是過去 31 天,則匯出檔案就不會包含公開頻道的資料夾。

ZIP 檔案中的每個資料夾將包含來自工作空間的不同資料。頻道資料夾將包含單一使用者已參與之每個頻道和群組私訊的 TXT 檔案。私訊資料夾將包含單一使用者已參與之每個一對一私訊的 TXT 檔案。

對話的 TXT 檔案將以頻道命名,或以私訊中的成員使用者名稱命名。例如,#公開區頻道的資料將會在 general.txt 中。私訊的資料可能會以 mcollins-jjordan.txt 這樣的標題命名。

若要檢視特定對話的訊息,可能要執行下列操作:

  1. 開啟頻道私訊資料夾。
  2. 針對你要檢視的頻道或私訊開啟 TXT 檔案。

開啟 TXT 檔案後,你會在訊息標題下方看見對話的訊息歷程。訊息歷程將包含由你匯出的單一使用者所傳送的訊息,或對話中的任何其他使用者傳送的訊息。

注意:保留政策設為保留編輯過的訊息和已刪除的訊息時,匯出檔案中才會出現這些訊息。


如何讀取訊息 

JSON 檔案

TXT 檔案

每則訊息都包含下列欄位:

  • "type": 
    顯示資料為訊息
  • "user": 
    傳送訊息成員的識別碼
  • "text": 
    訊息的實際文字內容
  • "ts": 
    張貼訊息的時間戳記。你可使用任何線上 unix 時間轉換工具轉譯時間戳記。

訊息會記錄在傳送訊息日期的日期檔案之中。以下範例是一則非常簡單的訊息:

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

注意:部分訊息也可能包含 “attachments” 值,其中包含訊息附加物件的清單。 

提示: 你可以參考 channels.json 及 users.json 檔案,以便轉譯 "channel""user" 欄位的英數字元識別碼。

訊息子類型

除了該成員在 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” 旁邊看見位置識別碼。
  • 如果有 “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" 值一定會顯示使用了該該項回應的次數。

訊息將依照對話中傳送的順序顯示。訊息包含下列內容:

  • 傳送訊息的時間戳記 (GMT)。
  • 傳送訊息者的 Slack 使用者名稱。
  • 訊息的內容。

以下範例是一則簡單的訊息:

[2020-04-20 13:47:27]  歡迎加入銷售團隊頻道!我們的團隊正以前所未有的速度成長

你的匯出檔案將不會區分對話串的訊息和傳送至頻道的訊息。對話流程中會出現對話串中的所有訊息。


如何讀取曾經編輯的訊息

JSON 檔案

TXT 檔案

成員可能會編輯自己在頻道分享的訊息。如果你的匯出選項允許編輯日誌,則曾經編輯的訊息就會擁有 "edited" 值,其中包含下列資訊:

  • "user"
    進行變更之成員的識別碼。
  • "ts"
    編輯訊息的時間戳記。你可使用任何線上 unix 時間轉換工具轉譯時間戳記。

編輯內容會記錄在編輯日期的日期檔案之中。這裡提供範例:

{
        "type": "message",
        "user":"UTXHL6F8A",
        "upload": false,
        "ts":"1590101612.000000",
        "text":"Hello, this is the message after it was edited.",
        "previous": {
            "text":"Hello, this is the original message.",
            "blocks": [
                {
                    "type": "rich_text",
                    "block_id":"Bts",
                    "elements": [
                        {
                            "type": "rich_text_section",
                            "elements": [
                                {
                                    "type": "text",
                                    "text":"Hello, this is the original message."
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "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":"Hello, this is the message after it was edited."
                            }
                        ]
                    }
                ]
            }
        ]
    }

編輯的訊息將顯示在訊息編輯標題下的對話 TXT 檔案結尾。編輯的訊息包含下列內容:

  • 編輯訊息的時間戳記 (GMT)。
  • 更新訊息者的使用者名稱。
  • 傳送原始訊息的時間戳記。
  • 進行任何編輯之前,原始訊息的內容。編輯的訊息將顯示在對話流程中的訊息區段。

這裡提供範例:

[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":"This is a message that has been deleted.",
           "blocks": [
               {
                   "type": "rich_text",
                   "block_id":"ABSkQ",
                   "elements": [
                       {
                           "type": "rich_text_section",
                           "elements": [
                               {
                                   "type": "text",
                                   "text":"This is a message that has been deleted."
                               }
                           ]
                       }
                   ]
               }
           ]
       },
       "original_ts":"1590101818.000600",
       "subtype": "message_deleted",
       "editor_id":"UTXHL6F8A"
   }

已刪除的訊息將顯示在訊息編輯標題下的對話 TXT 檔案的結尾。已刪除的訊息包含下列內容:

  • 訊息遭到刪除的時間戳記 (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」
    暗號標記該訊息之使用者的識別碼。
  • 「content_user_id」
    撰寫暗號標記訊息之使用者的識別碼。
  • 「date_created」
    暗號標記訊息的時間戳記。
  • 「留言」
    審查者留下的任何留言,包括時間戳記、誰留下留言,以及該留言是否已刪除等詳細資訊。
  • 「flagged_message」
    暗號標記訊息的詳細資訊,包括訊息內容、訊息作者的個人檔案以及審查狀態。

這裡提供範例:

[
{
    「打暗號」:{
        "id": "Fg016WC7RU9Z",
        "flagger_team_id": "E019B299WNQ",
        "flagger_user_id": "UTXHL6F8A",
        "content_user_id": "U014QD5SE67",
        "content_team_id": "T019B299WNQ",
        "date_created": 1727216082
    },
    「留言」:[],
    「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 檔案的檔案資料夾包含由在匯出中所選取的單一使用者所傳送的檔案。檔案標題將顯示在對話流程中的頻道私訊 TXT 檔案,如下所示:

[2020-04-20 13:47:27] jjordan 已分享檔案 F01243S814M

以下說明如何尋找特定檔案:

  1. 開啟分享檔案之對話的 TXT 檔案。
  2. 在訊息歷程中找到你要開啟的檔案,並記下對應的檔案標題 (例如:F01243S814M)。
  3. 開啟檔案資料夾,並選取要開啟檔案的檔案標題。


如何檢視畫板

JSON 檔案

TXT 檔案

使用 JSON 格式的 Slack 匯出檔案會包含一個特定的檔案,這個檔案包含用於下載所有可用畫板 (HTML 格式) 的連結。

畫板

尋找畫板的方式如下:

  1. 開啟 canvases.json 並搜尋畫板的標題。
  2. 在與你的畫板對應的詳細資料中,找出 url_private_download
  3. 將這個網址貼在瀏覽器中,開始下載該畫板並讀取其內容。
  {
    "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"
      }

頻道畫板

尋找頻道畫板的方式如下:

  1. 開啟該頻道畫板所屬的對話資料夾。
  2. 找出 canvas_in_the_conversation.json,這個檔案會包含 url_private_download
  3. 將這個網址貼在瀏覽器中,開始下載該畫板並讀取其內容。
{
    "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 這個網址下載畫板版本記錄,但你的工作空間或組織要先啟用匯出所有對話的資料這項功能才行。

畫板留言

匯出畫板留言時,留言在匯出檔案中會分列於獨立的資料夾中。將匯出檔案中的留言與其畫板連結的方式如下所示:

  1. 開啟 file_conversations.json 並搜尋畫板的標題。
  2. 記下 "name": 欄位中的 FC 識別碼,或者記下你要查看哪一個畫板的留言 (例如 FC:F05UA7XQXHS)。
  3. 返回匯出檔案後,找出 FC 識別碼相符的資料夾。
  4. 開啟 FC 資料夾,即可查看該畫板的留言。留言排序方式會以留言日期為準據
{
    "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
    }

目標使用者與畫板或是含分享畫板之頻道的成員互動時,TXT 匯出檔案會包含下列與畫板相關的檔案和資料夾:

  • canvas_in_the_conversation.txt
    每個對話資料夾中都有這個檔案,檔案內容包含一個用於下載對話畫板的連結。
  • 畫板 
    這個資料夾包含目標使用者有權存取之每個畫板的子資料夾,子資料夾不會重複。在這些資料夾中,你可以存取 HTML 格式的畫板。
  • 檔案
    這個資料夾包含每個畫板的子資料夾,子資料夾不會重複,其中含有目標使用者有權存取的內嵌檔案。

尋找特定畫板的方式如下:

  1. 開啟畫板資料夾,查看目標使用者有權存取之所有畫板的清單,所有畫板分別列在獨立的資料夾中。
  2. 根據你要查看的畫板開啟資料夾,然後開啟該畫板的 HTML 檔案。

注意:你還需要參照 FC 資料夾,找出以卡片方式顯示訊息連結時,或是提及某位使用者時,內嵌在畫板中的檔案或網路連結。