การอ้างอิง Payload
การอ้างอิงสำหรับข้อความ Payload ที่ใช้โดย Notify เมื่อส่งผ่านช่องทางที่ไม่ใช่อีเมล (push, SMS, Telegram, Kakao, LINE, WhatsApp)
Payload
Anchor link topreset(string): รหัส preset ที่จะใช้กับข้อความนี้content(LocalizedContent): เนื้อหาข้อความ ไม่สามารถใช้ร่วมกับsilentได้silent(bool): ส่ง push แบบเงียบ (ข้อมูลเท่านั้น) ไม่สามารถใช้ร่วมกับcontentได้custom_data(object): JSON รูปแบบอิสระที่ส่งต่อไปยัง client SDK เป็นพารามิเตอร์uopen_action(OpenAction): การกระทำที่เกิดขึ้นเมื่อผู้ใช้เปิดการแจ้งเตือนopen_actions(map<Platform,OpenAction>): การแทนที่open_actionสำหรับแต่ละแพลตฟอร์ม Key คือค่า enumPlatformที่เป็นตัวเลขvoip_push(bool): การแจ้งเตือน iOS VoIP
LocalizedContent
Anchor link toจับคู่รหัส locale กับเนื้อหาสำหรับแต่ละแพลตฟอร์ม Key คือรหัสสองตัวอักษรตามมาตรฐาน ISO 639-1 (ตัวอย่างเช่น "en", "es") บวกกับ key พิเศษ "default" สำหรับการแปลสำรอง ข้อยกเว้นสำหรับ ISO 639-1 คือ "zh-Hant" และ "zh-Hans" สำหรับภาษาจีนตัวเต็มและตัวย่อ
{ "localized_content": { "default": { "ios": { "title": "Hello", "body": "Tap to view" }, "android": { "title": "Hello", "body": "Tap to view" } }, "es": { "ios": { "title": "Hola", "body": "Toca para ver" }, "android": { "title": "Hola", "body": "Toca para ver" } } }}การเลือก Locale สำหรับอุปกรณ์
Anchor link toเนื้อหาที่ส่งไปยังอุปกรณ์จะถูกเลือกตามลำดับนี้:
- ตรงกับภาษาของอุปกรณ์พอดี
- Key
"default" - Key
"en" - locale อื่นๆ ที่มีอยู่ใน map
ระบุอย่างน้อยหนึ่งค่าระหว่าง "default" หรือ "en" เพื่อให้ทุกอุปกรณ์มีการสำรองข้อมูลที่แน่นอน หากคุณไม่ต้องการรูปแบบที่แตกต่างกันในแต่ละ locale ให้ส่งเพียง "default"
แต่ละรายการ locale คืออ็อบเจกต์ Content ที่มีบล็อกสำหรับแต่ละแพลตฟอร์มซึ่งเป็นทางเลือก กรอกเฉพาะแพลตฟอร์มที่คุณต้องการกำหนดเป้าหมาย
| บล็อกแพลตฟอร์ม | ช่องทาง |
|---|---|
ios | iOS push |
android | Android (FCM) push |
huawei_android | Huawei Android push |
baidu_android | Baidu Android push |
mac_os | macOS push |
amazon | Amazon (ADM) push |
safari | Safari web push |
chrome | Chrome web push |
firefox | Firefox web push |
ie | Internet Explorer web push |
windows | Windows push (tile / toast / badge) |
telegram | ข้อความ Telegram |
kakao | ข้อความ Kakao |
line | ข้อความ LINE |
whatsapp | ข้อความ WhatsApp |
ฟิลด์ push ทั่วไป
Anchor link toฟิลด์เหล่านี้ใช้ร่วมกันโดยบล็อก ios, android, huawei_android, baidu_android, mac_os, amazon, safari, chrome และ firefox (การรองรับอาจแตกต่างกันไป ฟิลด์ที่ไม่ได้ใช้จะถูกละเว้นโดยแพลตฟอร์มที่เกี่ยวข้อง)
title(string): ชื่อการแจ้งเตือนbody(string): เนื้อหาการแจ้งเตือนtime_to_live(duration, เช่น"3600s"): ระยะเวลาที่เซิร์ฟเวอร์ push ควรเก็บการแจ้งเตือนไว้สำหรับอุปกรณ์ที่ออฟไลน์sound(string): ชื่อไฟล์เสียงsound_enabled(bool): เปิดหรือปิดเสียงbadges(string): จำนวน badge (iOS) หรือที่คล้ายกันroot_params(object): การแทนที่ payload ดิบเฉพาะแพลตฟอร์มinbox(Inbox): รายการ Message Inbox
iOS (ios)
Anchor link tosubtitle(string): คำบรรยายการแจ้งเตือนของ iOSis_critical(bool): การแจ้งเตือนที่สำคัญ (ต้องมี entitlement)attachment(string): URL ของไฟล์แนบสื่อthread_id(string): ตัวระบุเธรดสำหรับการแจ้งเตือนแบบกลุ่มtrim_content(bool): ตัดเนื้อหาให้พอดีcategory_id(string): ตัวระบุUNNotificationCategoryสำหรับการกระทำแบบโต้ตอบinterruption_level(string):passive,active,time-sensitiveหรือcriticalcollapse_id(string): ตัวระบุการยุบของ APNs การแจ้งเตือนที่มีcollapse_idเดียวกันจะแทนที่กันบนอุปกรณ์
Android (android, huawei_android, baidu_android)
Anchor link toicon(string): ไอคอนขนาดเล็กของการแจ้งเตือนbanner(string): URL รูปภาพขนาดใหญ่delivery_priority(NORMAL|HIGH): ลำดับความสำคัญในการส่งของ FCMvibration(bool): การสั่นเมื่อได้รับled_color(string, hex): สี LED ของการแจ้งเตือนicon_background_color(string, hex): สีพื้นหลังของไอคอนshow_on_lockscreen(bool): แสดงบนหน้าจอล็อกcustom_icon(string): URL ของไอคอนที่กำหนดเองpriority(NotificationPriority): ลำดับความสำคัญในถาดการแจ้งเตือนgroup_id(string): คีย์กลุ่มการแจ้งเตือนcollapse_key(string): คีย์การยุบของ FCM การแจ้งเตือนที่มีcollapse_keyเดียวกันจะแทนที่กันในขณะที่อุปกรณ์ออฟไลน์
macOS (mac_os)
Anchor link toใช้ฟิลด์ push ทั่วไปบวกกับ subtitle และ action (URL ที่เปิดเมื่อผู้ใช้คลิกการแจ้งเตือน)
Amazon (amazon)
Anchor link toใช้ฟิลด์ push ทั่วไปบวกกับ custom_icon และ priority (NotificationPriority)
Safari (safari)
Anchor link toaction(string): URL ที่เปิดเมื่อผู้ใช้คลิกการแจ้งเตือนurl_arguments(array of string): อาร์กิวเมนต์ URL ของ Safari ที่ใช้แทนที่ในเทมเพลต URL ของ Web Push
Chrome (chrome)
Anchor link toicon,image(string): URL ไอคอนขนาดเล็กและรูปภาพขนาดใหญ่duration(duration): ตัวจับเวลาปิดอัตโนมัติbutton_text1/button_url1,button_text2/button_url2: ปุ่มการกระทำสูงสุดสองปุ่ม
Firefox (firefox)
Anchor link toใช้เฉพาะ title, body, icon, root_params และ inbox
Windows (windows)
Anchor link toWindows ใช้รูปแบบที่แตกต่างกัน:
{ "windows": { "type": "TOAST", "template": { "title": "Hello", "body": "Tap to view" }, "tag": "promo", "cache": true, "time_to_live": "3600s" }}typeคือTILE,TOASTหรือBADGEtemplate(มีโครงสร้าง) หรือraw({ "content": "<raw xml>" }) — ต้องมีอย่างใดอย่างหนึ่ง
Telegram (telegram)
Anchor link tobody(string): ข้อความcontent_variables(string): ตัวแปรที่ถูกแปลงเป็นสตริง JSON สำหรับเทมเพลตฝั่งบอท
Kakao (kakao)
Anchor link tocontent(string): เนื้อหาข้อความtemplate(string): รหัสเทมเพลตที่ได้รับอนุมัติcontent_variables(string): การผูกตัวแปรเทมเพลตที่ถูกแปลงเป็นสตริง JSON
LINE (line)
Anchor link tocontent(string): เนื้อหาข้อความธรรมดาtemplate(string): รหัสของเทมเพลต LINE ที่กำหนดค่าไว้ใน Pushwoosh Control Panel (ใช้เพื่อส่งรูปภาพ, carousel, หรือ flex messages) สำหรับเนื้อหา rich content ให้กำหนดค่าเทมเพลตล่วงหน้าใน Control Panel และอ้างอิงที่นี่
ต้องตั้งค่าอย่างน้อยหนึ่งอย่างระหว่าง content หรือ template
WhatsApp (whatsapp)
Anchor link toข้อความ WhatsApp จะส่งผ่าน Meta และอยู่ภายใต้กฎการส่งข้อความของ Meta การแบ่งหลักคือระหว่างข้อความรูปแบบอิสระ (ส่งได้เฉพาะภายในหน้าต่างบริการลูกค้า 24 ชั่วโมงที่เปิดโดยข้อความขาเข้าจากผู้ใช้) และเทมเพลตที่ได้รับอนุมัติ (จำเป็นสำหรับการเริ่มต้นการส่งข้อความขาออกและสำหรับข้อความใดๆ นอกหน้าต่าง 24 ชั่วโมง)
content(string): ข้อความรูปแบบอิสระ Meta จะส่งให้เฉพาะภายในหน้าต่าง 24 ชั่วโมงเท่านั้นcontent_id(string): ชื่อของเทมเพลต Meta ที่ได้รับการอนุมัติล่วงหน้า (เช่น"hello_world") จำเป็นสำหรับการเริ่มต้นการส่งข้อความขาออกหรือข้อความใดๆ นอกหน้าต่าง 24 ชั่วโมงlanguage(string): locale ของเทมเพลตที่ต้องตรงกับ locale ที่ได้รับอนุมัติใน Meta ทุกประการ (เช่น"en_US","en_GB") มีความหมายเฉพาะเมื่อใช้ร่วมกับcontent_idเท่านั้น สิ่งนี้ไม่ขึ้นอยู่กับ keyLocalizedContentภายนอก key ภายนอกจะเลือกเนื้อหาสำหรับอุปกรณ์ และlanguageจะเลือก locale ของเทมเพลต Meta สำหรับเนื้อหานั้นcontent_variables(string): อ็อบเจกต์ JSON ที่จับคู่ตัวยึดตำแหน่งในเนื้อหา เช่น"{\"1\":\"John\"}"button_url_variables(string): อ็อบเจกต์ JSON ที่จับคู่ตัวยึดตำแหน่ง URL ของปุ่มโดยใช้ดัชนีของปุ่มเป็น key เช่น"{\"0\":\"https://...\"}"header_variables(string): อ็อบเจกต์ JSON ที่จับคู่ตัวยึดตำแหน่งในส่วนหัวโดยใช้ประเภทเป็น key เช่น"{\"image\":\"https://...\"}"
ต้องตั้งค่าอย่างน้อยหนึ่งอย่างระหว่าง content หรือ content_id
SMS ใช้ขั้นตอนการส่งข้อความทั่วไป บล็อกแพลตฟอร์ม sms ถูกสงวนไว้ ระบุข้อความผ่านฟิลด์ body ทั่วไปบนบล็อกแพลตฟอร์มใดๆ ที่กรอกข้อมูลไว้ ID ผู้ส่งและตัวเลือกผู้ให้บริการอื่นๆ มาจากการกำหนดค่า SMS ของแอป ดู การกำหนดค่า SMS
OpenAction
Anchor link toกำหนดการกระทำที่จะเกิดขึ้นเมื่อผู้ใช้เปิดข้อความ
ต้องมีอย่างใดอย่างหนึ่ง:
rich_media(RichMedia): เปิดหน้า Rich Mediadeep_link: เปิด deep link:{ "code": "flow-code", "params": { "key": "value" } }link(Link): เปิด URL
RichMedia
Anchor link to{ "code": "XXXXX-XXXXX" } // โดยรหัส Rich Media{ "url": "https://..." } // โดย URL ระยะไกลLink
Anchor link to{ "url": "https://example.com/promo", "shortener": "BITLY"}shortener คือ NONE (ค่าเริ่มต้น) หรือ BITLY
Inbox
Anchor link toกำหนดค่าลักษณะที่ข้อความจะปรากฏใน Message Inbox
{ "image_url": "https://cdn.example.com/inbox.png", "expiration_date": "2026-05-15T00:00:00Z"}image_url(string): รูปภาพที่แสดงในรายการ inboxexpiration_date(timestamp): เวลาที่รายการจะถูกลบออกจาก inbox
NotificationPriority enum
Anchor link toควบคุมลำดับความสำคัญของการแจ้งเตือนบนอุปกรณ์เป้าหมาย จาก PRIORITY_MIN (ต่ำสุด) ถึง PRIORITY_MAX (สูงสุด)
PRIORITY_UNSPECIFIEDPRIORITY_MINPRIORITY_LOWPRIORITY_DEFAULTPRIORITY_HIGHPRIORITY_MAX
ตัวอย่าง: ส่ง push ไปยัง segment
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "title": "Hello", "body": "Hello, world!" }, "android": { "title": "Hello", "body": "Hello, world!" } }, "es": { "ios": { "title": "¡Hola!", "body": "¡Hola, mundo!" }, "android": { "title": "¡Hola!", "body": "¡Hola, mundo!" } } } }, "open_action": { "link": { "url": "https://example.com/promo" } } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } }'ตัวอย่าง: Transactional push ตาม user ID
Anchor link tocurl -X POST https://api.pushwoosh.com/messaging/v2/notify \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "transactional": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "users": { "list": ["customer-42"] }, "payload": { "content": { "localized_content": { "default": { "ios": { "title": "Your order", "body": "Order #42 has shipped." }, "android": { "title": "Your order", "body": "Order #42 has shipped." } } } }, "custom_data": { "order_id": "42" } }, "schedule": { "at": "2026-05-01T12:00:00Z" }, "message_type": "MESSAGE_TYPE_TRANSACTIONAL" } }'