ข้ามไปยังเนื้อหา

การส่งออกสถิติข้อความแบบอะซิงโครนัส

exportMessagesStatistics จะส่งออกประวัติและสถิติข้อความไปยังไฟล์ CSV บนเซิร์ฟเวอร์ ใช้สำหรับดึงข้อมูลจำนวนมากหรือข้อมูลทั้งบัญชีซึ่ง messages:list ไม่สามารถจัดการได้

เมื่อใดที่ควรใช้ export แทน messages:list

Anchor link to

ใช้ messages:list สำหรับการค้นหาแบบสดและแบ่งหน้าในช่วงเวลาที่จำกัด ใช้ exportMessagesStatistics เมื่อผลลัพธ์จะเกินขีดจำกัดการแบ่งหน้าลึกของ messages:list (page × per_page > 100000) หรือเมื่อเป้าหมายคือไฟล์เดียวที่สามารถดาวน์โหลดได้แทนที่จะเป็น JSON แบบแบ่งหน้า การส่งออกไม่มีขีดจำกัดสำหรับ date_range หรือจำนวนแถว เนื่องจากจะสตรีมผลลัพธ์ไปยังไฟล์บนดิสก์แทนที่จะเก็บไว้ในการตอบกลับครั้งเดียว

ขั้นตอนการส่งออกทำงานอย่างไร

Anchor link to
  1. เรียกใช้ export ด้วยตัวกรองเดียวกับ messages:list การตอบกลับจะส่งคืนตัวระบุงาน uid ทันที ก่อนที่ไฟล์จะถูกสร้างขึ้น
  2. ตรวจสอบ status ด้วย uid นั้นจนกว่าจะรายงาน STATUS_SUCCESS (หรือ STATUS_FAILED)
  3. เรียกใช้ result ด้วย uid เดียวกันเพื่อรับ file ที่สร้างขึ้นและ file_url ที่พร้อมใช้งาน
  4. ดาวน์โหลด ไฟล์ ใช้ file_url ตามที่เป็นอยู่ หรือดูที่ result สำหรับการสร้าง URL จาก file หากค่าที่ได้กลับมาว่างเปล่า

ใช้ lastTasks เพื่อค้นหางานส่งออกล่าสุดสำหรับแอปพลิเคชัน และ delete เพื่อยกเลิกงานหรือลบไฟล์ก่อนเวลา

เมธอด

Anchor link to

วงจรชีวิตการส่งออกมีห้าเมธอด พร้อมด้วย endpoint สำหรับดาวน์โหลดโดยตรง:

เมธอดคำอธิบาย
exportMessagesStatistics/exportจัดคิวการส่งออกและส่งคืน uid ของงาน
exportMessagesStatistics/statusตรวจสอบความคืบหน้าของงาน
exportMessagesStatistics/resultส่งคืนชื่อไฟล์ที่สร้างขึ้นเมื่องานเสร็จสิ้น
exportMessagesStatistics/lastTasksแสดงรายการงานส่งออกล่าสุดสำหรับแอปพลิเคชัน
exportMessagesStatistics/deleteยกเลิกงานหรือลบไฟล์ก่อนที่ระยะเวลาการเก็บรักษาจะหมดอายุ
ดาวน์โหลดดาวน์โหลดไฟล์ CSV ที่สร้างขึ้นตามชื่อ

จัดคิวการส่งออกประวัติข้อความและส่งคืนตัวระบุงานทันที

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export

ส่วนหัว (Headers)
Anchor link to

คำร้องขอนี้ต้องการ Server API token:

ชื่อจำเป็นคำอธิบาย
Authorizationใช่Server API token ต้องระบุในรูปแบบต่อไปนี้: Authorization: Api <Server Key>
พารามิเตอร์ในส่วนเนื้อหาของคำร้องขอ (Request body)
Anchor link to

ส่วนเนื้อหาของคำร้องขอยอมรับฟิลด์ต่อไปนี้:

ชื่อจำเป็นประเภทคำอธิบาย
typeใช่Stringต้องเป็น “TASK_TYPE_EXPORT_MESSAGES_V2”
export_messages_v2ใช่Objectพารามิเตอร์การส่งออก อธิบายไว้ด้านล่าง
export_messages_v2.application_codeดูหมายเหตุStringรหัสแอปพลิเคชัน Pushwoosh จำเป็นหากไม่ได้ตั้งค่า app_group_code
export_messages_v2.app_group_codeดูหมายเหตุStringรหัสกลุ่มแอปพลิเคชัน ส่งออกข้อมูลของทุกแอปในกลุ่ม จำเป็นหากไม่ได้ตั้งค่า application_code
export_messages_v2.searchไม่Stringค้นหาข้อความอิสระในชื่อและเนื้อหาของข้อความ
export_messages_v2.filtersไม่Objectตัวกรองข้อความ อธิบายไว้ด้านล่าง ละเว้นเพื่อส่งออกประวัติทั้งหมดของบัญชี
export_messages_v2.propertiesไม่Arrayคอลัมน์ที่จะรวมใน CSV อธิบายไว้ด้านล่าง

export_messages_v2.filters ยอมรับ:

ชื่อ
ประเภทคำอธิบาย
statusesArrayสถานะข้อความที่จะรวม
ค่าที่เป็นไปได้
  • ”MESSAGE_STATUS_CANCELED"
  • "MESSAGE_STATUS_CREATING"
  • "MESSAGE_STATUS_DONE"
  • "MESSAGE_STATUS_FAIL"
  • "MESSAGE_STATUS_PENDING"
  • "MESSAGE_STATUS_PROCESSING"
  • "MESSAGE_STATUS_WAITING”
platformsArrayรหัสแพลตฟอร์ม (ตัวเลข เช่น 1 สำหรับ iOS) ไม่ใช่สตริงชื่อแพลตฟอร์มที่ใช้โดย messages:list
sent_dateObjectช่วงเวลารายงานที่กรองตามวันที่ส่ง: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}
created_dateObjectช่วงเวลารายงานที่กรองตามวันที่สร้างข้อความ รูปแบบเดียวกับ sent_date
created_viaArrayแหล่งที่มาของข้อความ
ค่าที่เป็นไปได้
  • ”AB_TEST"
  • "API"
  • "AUTO_PUSH"
  • "CP"
  • "CSV"
  • "CUSTOMER_JOURNEY"
  • "EMAIL_API"
  • "EMAIL_CP"
  • "GEO_ZONE"
  • "PUSH_ON_EVENT"
  • "RSS"
  • "SYSTEM”
segmentsArrayรหัสตัวกรอง ที่ข้อความถูกส่งไป
campaignsArrayรหัสแคมเปญ ซึ่งแตกต่างจาก messages:list ที่นี่จะรับเป็นรายการ ไม่ใช่รหัสเดียว
message_idString (uint64)ID ข้อความตัวเลขเดียว อยู่ในเครื่องหมายคำพูด ซึ่งแตกต่างจาก messages:list ที่การส่งออกจะรับ ID เดียว ไม่ใช่ array
message_codeStringรหัสข้อความ เดียว

export_messages_v2.properties จะเลือกว่า CSV จะมีคอลัมน์ใดบ้าง

ค่าที่เป็นไปได้
  • "EXPORT_MESSAGE_PROPERTY_ID"
  • "EXPORT_MESSAGE_PROPERTY_TIMESTAMP"
  • "EXPORT_MESSAGE_PROPERTY_CONTENT"
  • "EXPORT_MESSAGE_PROPERTY_TITLE"
  • "EXPORT_MESSAGE_PROPERTY_APPLICATIONS"
  • "EXPORT_MESSAGE_PROPERTY_STATUS"
  • "EXPORT_MESSAGE_PROPERTY_PLATFORMS"
  • "EXPORT_MESSAGE_PROPERTY_SOURCE"
  • "EXPORT_MESSAGE_PROPERTY_FILTER"
  • "EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS"
  • "EXPORT_MESSAGE_PROPERTY_SENT"
  • "EXPORT_MESSAGE_PROPERTY_OPENED"
  • "EXPORT_MESSAGE_PROPERTY_ERRORS"
  • "EXPORT_MESSAGE_PROPERTY_RECIPIENTS"
  • "EXPORT_MESSAGE_PROPERTY_DELIVERED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS"
  • "EXPORT_MESSAGE_PROPERTY_CLICKS"
  • "EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
ตัวอย่างคำร้องขอ
Anchor link to
{
"type": "TASK_TYPE_EXPORT_MESSAGES_V2",
"export_messages_v2": {
"application_code": "XXXXX-XXXXX",
"filters": {
"created_date": {
"date_from": "2026-01-01",
"date_to": "2026-06-30"
},
"statuses": ["MESSAGE_STATUS_DONE"],
"platforms": [1, 3]
},
"properties": [
"EXPORT_MESSAGE_PROPERTY_ID",
"EXPORT_MESSAGE_PROPERTY_TIMESTAMP",
"EXPORT_MESSAGE_PROPERTY_STATUS",
"EXPORT_MESSAGE_PROPERTY_PLATFORMS",
"EXPORT_MESSAGE_PROPERTY_SENT",
"EXPORT_MESSAGE_PROPERTY_OPENED"
]
}
}
{
"uid": "177458"
}

ส่งคืนความคืบหน้าของงานส่งออก

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status

พารามิเตอร์ในส่วนเนื้อหาของคำร้องขอ (Request body)
Anchor link to

ส่งตัวระบุงานที่ได้รับจากการเรียก export:

ชื่อจำเป็นประเภทคำอธิบาย
uidใช่String (int64)ตัวระบุงานจากการตอบกลับของ export เช่น "177458"
ตัวอย่างคำร้องขอ
Anchor link to
{
"uid": "177458"
}
{
"status": "STATUS_SUCCESS",
"progress": 1
}

status เป็นหนึ่งใน "STATUS_PENDING", "STATUS_SUCCESS" หรือ "STATUS_FAILED" ส่วน progress เป็นเศษส่วนระหว่าง 0 ถึง 1; ให้ตรวจสอบ status จนกว่าจะถึง "STATUS_SUCCESS" ก่อนที่จะเรียก result

ส่งคืนชื่อไฟล์ที่สร้างขึ้นเมื่องานเสร็จสมบูรณ์

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result

พารามิเตอร์ในส่วนเนื้อหาของคำร้องขอ (Request body)
Anchor link to

ส่งตัวระบุงานเดียวกันกับที่ได้รับจากการเรียก export:

ชื่อจำเป็นประเภทคำอธิบาย
uidใช่String (int64)ตัวระบุงานจากการตอบกลับของ export เช่น "177458"
ตัวอย่างคำร้องขอ
Anchor link to
{
"uid": "177458"
}
{
"export_messages_v2_result": {
"file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv",
"file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv"
}
}

การเรียก result ก่อนที่ status จะรายงาน "STATUS_SUCCESS" จะส่งคืนผลลัพธ์ที่ว่างเปล่า file_url เป็นลิงก์ที่พร้อมใช้งานไปยัง endpoint สำหรับดาวน์โหลด บนศูนย์ข้อมูลที่ถูกต้องสำหรับบัญชี — ให้ใช้ตามที่เป็นอยู่แทนที่จะสร้าง URL จาก file ด้วยตัวเอง file_url จะว่างเปล่าหากศูนย์ข้อมูลของบัญชีไม่มีการกำหนดค่า URL พื้นฐาน ในกรณีนั้น คุณสามารถกลับไปสร้าง URL จาก file ได้ก็ต่อเมื่อบัญชีอยู่บนศูนย์ข้อมูลเริ่มต้น app.pushwoosh.com เท่านั้น — บัญชีบนศูนย์ข้อมูลอื่นหรือโดเมน white label จะไม่มีทางทราบโฮสต์ที่ถูกต้องจาก file เพียงอย่างเดียวได้

แสดงรายการงานส่งออกล่าสุดสำหรับแอปพลิเคชัน โดยแสดงรายการล่าสุดก่อน

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks

พารามิเตอร์ในส่วนเนื้อหาของคำร้องขอ (Request body)
Anchor link to

พารามิเตอร์ทุกตัวเป็นตัวกรองที่ไม่บังคับ; ละเว้นทั้งหมดเพื่อแสดงรายการงานทั้งหมดที่โทเค็นสามารถเข้าถึงได้:

ชื่อจำเป็นประเภทคำอธิบาย
applicationไม่Stringรหัสแอปพลิเคชัน Pushwoosh ละเว้นเพื่อแสดงรายการงานของทุกแอปพลิเคชันที่โทเค็นสามารถเข้าถึงได้
typesไม่Arrayจำกัดเฉพาะประเภทงานที่ระบุ ใช้ [“TASK_TYPE_EXPORT_MESSAGES_V2”] เพื่อดูเฉพาะการส่งออกข้อความ
campaignไม่Stringกรองตาม รหัสแคมเปญ
message_idไม่String (uint64)กรองตาม ID ข้อความตัวเลขเดียว อยู่ในเครื่องหมายคำพูด
message_codeไม่Stringกรองตาม รหัสข้อความ เดียว
limitไม่Integerจำนวนงานสูงสุดที่จะส่งคืน
timestamp_fromไม่Stringส่งคืนเฉพาะงานที่สร้างขึ้นหลังจากการประทับเวลานี้ (RFC 3339)
ตัวอย่างคำร้องขอ
Anchor link to
{
"application": "XXXXX-XXXXX",
"types": ["TASK_TYPE_EXPORT_MESSAGES_V2"],
"limit": 10
}
{
"tasks": [
{
"id": "177458",
"timestamp": "2026-08-13T12:00:00Z",
"status": "STATUS_SUCCESS",
"requested_by_user": "user@example.com",
"export_messages_v2": {
"application_code": "XXXXX-XXXXX"
},
"export_messages_v2_result": {
"file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv",
"file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv"
}
}
]
}

ลบงานและไฟล์ของงานนั้นก่อนที่ระยะเวลาการเก็บรักษา 7 วันจะหมดอายุ

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete

พารามิเตอร์ในส่วนเนื้อหาของคำร้องขอ (Request body)
Anchor link to

ส่งตัวระบุงานที่ได้รับจากการเรียก export:

ชื่อจำเป็นประเภทคำอธิบาย
uidใช่String (int64)ตัวระบุงานจากการตอบกลับของ export เช่น "177458"
ตัวอย่างคำร้องขอ
Anchor link to
{
"uid": "177458"
}
{}

ดาวน์โหลด

Anchor link to

ดาวน์โหลดไฟล์ CSV ที่สร้างโดย result ตามชื่อ

GET https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>

ส่วนหัว (Headers)
Anchor link to

รับรองความถูกต้องด้วยวิธีเดียวกับเมธอดอื่น ๆ หรือใช้เซสชัน Control Panel ที่ใช้งานอยู่:

ชื่อจำเป็นคำอธิบาย
Authorizationใช่Server API token ในรูปแบบเดียวกับเมธอด exportMessagesStatistics อื่น ๆ: Authorization: Api <Server Key> (รูปแบบ Api ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก) คำร้องขอที่ไม่มีส่วนหัว Authorization และไม่มีเซสชัน Control Panel ที่ลงชื่อเข้าใช้จะได้รับ 401 Unauthorized

แทนที่ <file> ด้วยค่า file ที่แน่นอนจากการตอบกลับของ result ตัวอย่างเช่น:

https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv

ไฟล์เป็น CSV ที่มีคอลัมน์ที่เลือกใน properties ไฟล์จะยังคงใช้งานได้เป็นเวลา 7 วันหลังจากการส่งออกเสร็จสิ้น จากนั้นงานล้างข้อมูลจะลบไฟล์ออกและ URL จะไม่สามารถใช้งานได้อีกต่อไป