如何讀取 Slack 資料匯出

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


匯出格式

您的匯出格式取決於執行的匯出類型

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


匯出檔案包含的內容

JSON 檔案

TXT 檔案

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

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

私訊 (dms.json)  

私人頻道 (groups.json)  

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

群組私訊 (mpims.json)  

成員 (users.json)

每個公開頻道的資料夾

每個私人頻道的資料夾

 

每個私訊的資料夾

 

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

如果您選擇使用 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] <jjordan> 歡迎來到銷售團隊頻道!我們的團隊正以前所未有的速度成長

你的匯出檔案將不會區分對話串的訊息和傳送至頻道的訊息。對話串的所有訊息將顯示在對話的流程中,與其餘訊息混合在一起。

提示:有人在訊息中提及你時,其顯示名稱前面不會有 @ 符號。


如何讀取曾經編輯的訊息

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] <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":"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] <jjordan> 已刪除 [2020-04-20 13:47:42] <jjordan> 上星期,我們的銷售額達到 X!


如何檢視檔案

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. 開啟檔案資料夾,並選取要開啟檔案的檔案標題。