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

Messages API

createMessage เลิกใช้งานแล้ว

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createMessage

สร้าง push notification ใหม่

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
application*stringPushwoosh application code
notifications*arrayอาร์เรย์ JSON ของพารามิเตอร์ข้อความ ดูรายละเอียดในตัวอย่างคำขอด้านล่าง
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

ตัวอย่างคำขอ

Anchor link to
Example
{
"request": {
"application": "XXXXX-XXXXX", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"send_date": "now", // ไม่บังคับ YYYY-MM-DD HH:mm หรือ 'now'
"content": { // ไม่บังคับ object หรือ string
"en": "English", // ใช้ "wns_content" แทนสำหรับ Windows
"fr": "French"
},
"title": { // ไม่บังคับ object หรือ string
"en": "Title", // จะถูกละเว้นหากมีการระบุชื่อเรื่องเฉพาะแพลตฟอร์ม
"fr": "Titre" // 'ios_title', 'android_header' ฯลฯ
}, // ดูตัวอย่างพารามิเตอร์เฉพาะแพลตฟอร์มด้านล่าง
"subtitle":{ // ไม่บังคับ object หรือ string
"en": "Subtitle", // จะถูกละเว้นหากมีการระบุชื่อเรื่องเฉพาะแพลตฟอร์ม
"fr": "Sous-titre" // 'ios_subtitle' ฯลฯ
}, // ดูตัวอย่างพารามิเตอร์เฉพาะแพลตฟอร์มด้านล่าง
"ignore_user_timezone": true, // ไม่บังคับ
"timezone": "America/New_York", // ไม่บังคับ หากไม่ระบุ จะใช้ UTC-0 เป็นค่าเริ่มต้นสำหรับ "send_date"
// ดู https://php.net/manual/timezones.php สำหรับ
// โซนเวลาที่รองรับ
"campaign": "CAMPAIGN_CODE", // ไม่บังคับ รหัสแคมเปญที่คุณต้องการ
// กำหนดข้อความ push นี้
"geozone": { // ไม่บังคับ ส่งไปยัง Geozone
"lat": 22.22,
"lng": 33.33,
"range": 110
},
"rich_media": "XXXXX-XXXXX", // ไม่บังคับ คัดลอกรหัส Rich Media จากแถบ URL ของ
// หน้าแก้ไข Rich Media ใน Pushwoosh Control Panel
"link": "https://google.com", // ไม่บังคับ สำหรับ deeplinks ให้เพิ่ม "minimize_link": 0
"minimize_link": 0, // ไม่บังคับ 0 — ไม่ย่อ, 2 — bitly ค่าเริ่มต้น = 2
// โปรดทราบว่าตัวย่อลิงก์มีข้อจำกัด
// เกี่ยวกับจำนวนการเรียก
"data": { // ไม่บังคับ สตริง JSON หรือออบเจ็กต์ JSON จะถูกส่งเป็น
"key": "value" // พารามิเตอร์ "u" ใน payload (แปลงเป็นสตริง JSON)
},
"transactionId": "unique UUID", // ไม่บังคับ ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการซ้ำซ้อน
// ในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง
// Pushwoosh เป็นเวลา 5 นาที
"platforms": [ // ไม่บังคับ 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
1, 3, 7, 8, 9, 10, // 9 — Amazon; 10 — Safari; 11 — Chrome;
11, 12, 17 // 12 — Firefox; 17 — Huawei
],
"preset": "XXXXX-XXXXX", // ไม่บังคับ รหัส Push Preset จาก Control Panel ของคุณ
// หากมีการส่งพารามิเตอร์เฉพาะในคำขอ
// พารามิเตอร์เหล่านั้นจะแทนที่พารามิเตอร์ของ preset
"send_rate": 100, // ไม่บังคับ การควบคุมปริมาณ ค่าที่ถูกต้องคือ 100 ถึง 1000 pushes/วินาที
"send_rate_avoid": true, // ไม่บังคับ หากตั้งค่าเป็น true ขีดจำกัดการควบคุมปริมาณจะไม่ถูกนำไปใช้กับ
// push notification นี้โดยเฉพาะ
// เกี่ยวข้องกับเทมเพลต โปรดดูคู่มือ Template Engine เพื่อเรียนรู้เพิ่มเติม
"template_bindings": { // ไม่บังคับ
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // ไม่บังคับ ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนแท็กของอุปกรณ์
"firstname": "John",
"lastname": "Doe"
},
"message_type": "marketing", // ไม่บังคับ "marketing" หรือ "transactional"
// หากไม่ระบุ ผู้ใช้ที่มี PW_ControlGroup: true จะไม่ได้รับข้อความ
// พารามิเตอร์การจำกัดความถี่ ตรวจสอบให้แน่ใจว่าได้กำหนดค่าการจำกัดความถี่ส่วนกลางใน Control Panel แล้ว
// การจำกัดความถี่ไม่มีผลกับข้อความธุรกรรม
// ในกรณีอื่นๆ ทั้งหมด รวมถึงการไม่ระบุ "message_type" การจำกัดความถี่จะมีผล
"capping_days": 30, // ไม่บังคับ จำนวนวันสำหรับการจำกัดความถี่ (สูงสุด 30 วัน)
"capping_count": 10, // ไม่บังคับ จำนวน push สูงสุดที่สามารถส่งจาก
// แอปเฉพาะไปยังอุปกรณ์หนึ่งๆ ภายในระยะเวลา 'capping_days'
// ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด
// 'capping_count' สำหรับอุปกรณ์ ข้อความนั้นจะไม่
// ถูกส่งไปยังอุปกรณ์นั้น
"capping_exclude": true, // ไม่บังคับ หากตั้งค่าเป็น true push notification นี้จะไม่
// ถูกนับรวมในการจำกัดความถี่สำหรับ push ในอนาคต
"capping_avoid": true, // ไม่บังคับ หากตั้งค่าเป็น true การจำกัดความถี่จะไม่ถูกนำไปใช้กับ
// push notification นี้โดยเฉพาะ
// หากต้องการบันทึกข้อความไปยัง Inbox ผ่าน API ให้ใช้ "inbox_date" หรือ "inbox_image"
// ข้อความจะถูกบันทึกเมื่อมีการใช้พารามิเตอร์เหล่านี้อย่างน้อยหนึ่งตัว
"inbox_date": "2017-02-02", // ไม่บังคับ ระบุว่าจะลบข้อความออกจาก Inbox เมื่อใด
// ข้อความจะถูกลบออกจาก Inbox เวลา 00:00:01 UTC
// ของวันที่ระบุ ดังนั้นวันก่อนหน้าคือ
// วันสุดท้ายที่ผู้ใช้สามารถเห็นข้อความใน Inbox ของตนได้
// หากไม่ระบุ วันที่ลบเริ่มต้นคือ
// วันถัดไปหลังจากวันที่ส่ง
"inbox_image": "Inbox image URL", // ไม่บังคับ รูปภาพที่จะแสดงใกล้กับข้อความ
"inbox_days": 5, // ไม่บังคับ ระบุว่าจะลบข้อความออกจาก
// Inbox เมื่อใด (อายุของข้อความใน inbox เป็นวัน)
// สามารถใช้แทนพารามิเตอร์ "inbox_date" ได้
// สูงสุด 30 วัน
"devices": [ // ไม่บังคับ ระบุ tokens หรือ hwids เพื่อส่ง push ที่กำหนดเป้าหมาย
"hwid_XXXX" // notifications ไม่เกิน 1000 tokens/hwids ใน
], // อาร์เรย์ หากตั้งค่า ข้อความจะถูกส่งไปยัง
// อุปกรณ์ในรายการเท่านั้น ไม่อนุญาตให้ใช้ Application Group สำหรับรายการอุปกรณ์
// iOS push tokens สามารถเป็นตัวพิมพ์เล็กเท่านั้น
"to": [ // ไม่บังคับ สำหรับอีเมล, SMS และช่องทางที่คล้ายกัน รายชื่อผู้รับ
"email_1", "email_2" // (เช่น ที่อยู่อีเมล, หมายเลขโทรศัพท์) สูงสุด 1000 รายการ
], // สำหรับ push ให้ใช้ "devices" แทน
// User-centric push notifications
"users": [ // ไม่บังคับ หากตั้งค่า ข้อความจะถูกส่งไปยัง
"user_XXXX" // user ID ที่ระบุเท่านั้น (ตั้งค่าผ่านการเรียก /registerUser)
], // หากระบุพร้อมกับ devices หรือ to
// อย่างหลังจะถูกละเว้น ไม่เกิน 1000 user
// ID ในอาร์เรย์ ไม่อนุญาตให้ใช้ Application Group สำหรับรายการผู้ใช้
//
// ฟิลเตอร์และเงื่อนไข
"filter": "FILTER_NAME", // ไม่บังคับ
"conditions": [ // ไม่บังคับ ดูหมายเหตุด้านล่าง
["Country", "EQ", "fr"],
["Language", "EQ", "en"]
],
"conditions_operator": "AND" // ไม่บังคับ ตัวดำเนินการตรรกะสำหรับอาร์เรย์เงื่อนไข
// ค่าที่เป็นไปได้: AND | OR ค่าเริ่มต้นคือ AND
}]
}
}

ตัวอย่างคำขอการแจ้งเตือน VoIP

Anchor link to

Pushwoosh รองรับการแจ้งเตือนการโทรสไตล์ VoIP สำหรับ iOS และ Android
ด้านล่างนี้คุณจะพบตัวอย่างคำขอ API createMessage สำหรับแต่ละแพลตฟอร์ม

Example
{
"request": {
"application": "XXXXX-XXXXX", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [
{
"voip_push": true, // จำเป็น พารามิเตอร์นี้จำเป็นสำหรับการส่ง VoIP push notification
"ios_root_params": {
"aps": {
"mutable-content": 1 // จำเป็นสำหรับไฟล์แนบสื่อ iOS10+
},
"callerName": "CallerName", // ไม่บังคับ ชื่อผู้โทร หากไม่ระบุ จะแสดง "unknown caller"
"video": true, // ไม่บังคับ ระบุว่ารองรับวิดีโอคอลหรือไม่
"supportsHolding": true, // ไม่บังคับ ระบุว่ารองรับฟังก์ชันพักสายหรือไม่
"supportsDTMF": false, // ไม่บังคับ ควบคุมการรองรับสัญญาณ Dual-Tone Multi-Frequency
"callId": "42", // ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันของการโทรที่จะยกเลิก
"cancelCall": true // ไม่บังคับ ตั้งค่าเป็น "true" เพื่อยกเลิกการโทรด้วย "callId" ที่ระบุ
}
}
]
}
}
Example
{
"request": {
"application": "XXXXX-XXXXX", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [
{
"voip_push": true, // จำเป็น พารามิเตอร์นี้จำเป็นสำหรับการส่ง VoIP push notification
"android_root_params": {
"callerName": "callerName", // ไม่บังคับ ชื่อผู้โทร หากไม่ระบุ จะแสดง "unknown caller"
"video": true, // ไม่บังคับ ระบุว่ารองรับวิดีโอคอลหรือไม่
"callId": 42, // ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันของการโทรที่จะยกเลิก
"cancelCall": true // ไม่บังคับ ตั้งค่าเป็น "true" เพื่อยกเลิกการโทรด้วย "callId" ที่ระบุ
}
}
]
}
}

พารามิเตอร์เฉพาะแพลตฟอร์ม

Anchor link to

พารามิเตอร์ iOS

Anchor link to
Example
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"ios_title": { // ไม่บังคับ Object หรือ string เพิ่มชื่อเรื่องเฉพาะ iOS สำหรับ push notification
"en": "title"
},
"ios_subtitle": { // ไม่บังคับ Object หรือ string เพิ่มคำบรรยายเฉพาะ iOS สำหรับ push notification
"en": "subtitle"
},
"ios_content": { // ไม่บังคับ Object หรือ string เพิ่มเนื้อหาเฉพาะ iOS สำหรับ push notification
"en": "content"
},
"ios_badges": 5, // ไม่บังคับ หมายเลขป้ายแอปพลิเคชัน iOS
// ใช้ "+n" หรือ "-n" เพื่อเพิ่ม/ลดค่าป้ายกำกับ n
"ios_sound": "sound file.wav", // ไม่บังคับ ชื่อไฟล์เสียงใน main bundle ของแอปพลิเคชัน
// หากเว้นว่างไว้ อุปกรณ์จะสร้างเสียงระบบเริ่มต้น
"ios_sound_off": true, // ไม่บังคับ เปิด/ปิดเสียงที่ตั้งค่าโดยฟิลด์ "ios_sound"
"ios_ttl": 3600, // ไม่บังคับ พารามิเตอร์ Time to live - อายุการใช้งานสูงสุดของข้อความเป็นวินาที
"ios_silent": 1, // ไม่บังคับ เปิดใช้งานการแจ้งเตือนแบบเงียบ (ไม่สนใจ "sound" และ "content")
"ios_category_id": "1", // ไม่บังคับ รหัสหมวดหมู่ iOS8 จาก Pushwoosh
"ios_root_params": { // ไม่บังคับ พารามิเตอร์ระดับรากไปยังพจนานุกรม aps
"aps": {
"content-available": "0", // ไม่บังคับ ตั้งค่า "1" เพื่อส่ง push แบบเงียบ และ "0" สำหรับ push ปกติ
"mutable-content": 1 // จำเป็นสำหรับไฟล์แนบสื่อ iOS10+
},
"callerName": "CallerName", // ไม่บังคับ พารามิเตอร์ VoIP ชื่อผู้โทร หากไม่ระบุ จะแสดง "unknown caller"
"video": true, // ไม่บังคับ พารามิเตอร์ VoIP ระบุว่ารองรับวิดีโอคอลหรือไม่
"supportsHolding": true, // ไม่บังคับ พารามิเตอร์ VoIP ระบุว่ารองรับฟังก์ชันพักสายหรือไม่
"supportsDTMF": false, // ไม่บังคับ พารามิเตอร์ VoIP ควบคุมการรองรับสัญญาณ Dual-Tone Multi-Frequency
"data": {} // ไม่บังคับ ข้อมูลที่ผู้ใช้ให้มา สูงสุด 4KB
},
"ios_attachment": "URL", // ไม่บังคับ แทรกเนื้อหาสื่อในการแจ้งเตือน
"ios_thread_id": "some thread id", // ไม่บังคับ ตัวระบุเพื่อจัดกลุ่มการแจ้งเตือนที่เกี่ยวข้อง
// ข้อความที่มี thread ID เดียวกันจะถูกจัดกลุ่ม
// บนหน้าจอล็อกและใน Notification Center
"ios_critical": true, // ไม่บังคับ ทำเครื่องหมายการแจ้งเตือน iOS เป็นการแจ้งเตือนที่สำคัญ
// เล่นเสียงแม้ว่าอุปกรณ์จะปิดเสียงหรือ
// เปิดโหมดห้ามรบกวน
"ios_category_custom": "category", // ไม่บังคับ หมวดหมู่ APNS ที่กำหนดเอง
"ios_interruption_level": "active", // ไม่บังคับ หนึ่งใน "passive", "active", "time-sensitive",
// "critical" ระบุความสำคัญและ
// เวลาในการส่งการแจ้งเตือน โปรดดู
// คู่มือ One-time push สำหรับรายละเอียด
"apns_collapse_id": "promo", // ไม่บังคับ ตัวระบุการยุบ APNs การแจ้งเตือนที่มี
// apns_collapse_id เดียวกันจะแทนที่กันบนอุปกรณ์
"apns_trim_content": 1 // ไม่บังคับ (0|1) ตัดสตริงเนื้อหาที่เกินด้วยจุดไข่ปลา
}]
}
}

พารามิเตอร์ Android

Anchor link to
Example
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"android_header": { // ไม่บังคับ ส่วนหัวการแจ้งเตือนของ Android
"en": "header"
},
"android_content": { // ไม่บังคับ เนื้อหาการแจ้งเตือนของ Android
"en": "content"
},
"android_root_params": { // ไม่บังคับ ออบเจ็กต์ key-value ที่กำหนดเอง
"key": "value", // พารามิเตอร์ระดับรากสำหรับผู้รับ payload ของ Android
"CancelID": 12345678, // ไม่บังคับ ยกเลิก push notification ด้วย
"voip": true, // จำเป็น พารามิเตอร์ VoIP พารามิเตอร์นี้จำเป็นสำหรับการส่ง VoIP push notifications
"callerName": "callerName", // ไม่บังคับ พารามิเตอร์ VoIP ชื่อผู้โทร หากไม่ระบุ จะแสดง "unknown caller"
"video": true, // ไม่บังคับ พารามิเตอร์ VoIP ระบุว่ารองรับวิดีโอคอลหรือไม่
}, // Message ID ที่ระบุ (รับ ID จาก Message History)
"android_sound": "soundfile", // ไม่บังคับ ไม่มีนามสกุลไฟล์ หากเว้นว่างไว้
// อุปกรณ์จะสร้างเสียงระบบเริ่มต้น
"android_sound_off": true, // ไม่บังคับ เปิด/ปิดเสียงที่ตั้งค่าโดยฟิลด์ "android_sound"
"android_icon": "icon.png", // ไม่บังคับ
"android_custom_icon": "URL.png", // ไม่บังคับ URL แบบเต็มไปยังไฟล์รูปภาพ
"android_banner": "URL.png", // ไม่บังคับ URL แบบเต็มไปยังไฟล์รูปภาพ
"android_badges": 5, // ไม่บังคับ หมายเลขป้ายไอคอนแอปพลิเคชัน Android
// ใช้ "+n" หรือ "-n" เพื่อเพิ่ม/ลดค่าป้ายกำกับ n
"android_gcm_ttl": 3600, // ไม่บังคับ พารามิเตอร์ Time to live — อายุการใช้งานสูงสุดของข้อความเป็นวินาที
"android_vibration": 0, // ไม่บังคับ การสั่นแบบบังคับของ Android สำหรับ push ที่มีความสำคัญสูง
"android_led": "#rrggbb", // ไม่บังคับ สี LED แบบ hex อุปกรณ์จะพยายามประมาณค่าให้ใกล้เคียงที่สุด
"android_priority": -1, // ไม่บังคับ ตั้งค่าพารามิเตอร์ "importance" สำหรับอุปกรณ์ที่มี
// Android 8.0 ขึ้นไป และพารามิเตอร์ "priority"
// สำหรับอุปกรณ์ที่มี Android 7.1 และต่ำกว่า กำหนด
// ระดับการขัดจังหวะของช่องทางการแจ้งเตือนหรือการแจ้งเตือน
// เฉพาะ ค่าที่ถูกต้องคือ -2, -1, 0, 1, 2
"android_delivery_priority": "normal", // ไม่บังคับ "normal" หรือ "high"
// เปิดใช้งานการส่งการแจ้งเตือนเมื่อ
// อุปกรณ์อยู่ในโหมดประหยัดพลังงาน
"android_ibc": "#RRGGBB", // ไม่บังคับ สีพื้นหลังไอคอนบน Lollipop, #RRGGBB,
// #AARRGGBB, "red", "black", "yellow" ฯลฯ
"android_silent": 1, // ไม่บังคับ 0 หรือ 1 เปิดใช้งานการแจ้งเตือนแบบเงียบ
// ไม่สนใจเสียงและเนื้อหา
"android_group_id": "123", // ไม่บังคับ ตัวระบุเพื่อจัดกลุ่มการแจ้งเตือนที่เกี่ยวข้อง ข้อความที่มี
// thread ID เดียวกันจะถูกจัดกลุ่มใน
// Notification Center
"android_collapse_key": "promo" // ไม่บังคับ คีย์การยุบ FCM การแจ้งเตือนที่มี
// คีย์การยุบเดียวกันจะแทนที่กันในขณะที่อุปกรณ์ออฟไลน์
}]
}
}

พารามิเตอร์ Huawei

Huawei
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"huawei_android_header": { // ไม่บังคับ Object หรือ string ชื่อเรื่องการแจ้งเตือน
"en": "header"
},
"huawei_android_content": { // ไม่บังคับ Object หรือ string เนื้อหาการแจ้งเตือน
"en": "content"
},
"huawei_android_badges": true, // ไม่บังคับ
"huawei_android_silent": 0, // ไม่บังคับ 0 หรือ 1 เปิดใช้งานการแจ้งเตือนแบบเงียบ
// ไม่สนใจเสียงและเนื้อหา
"huawei_android_icon": "URL.png", // ไม่บังคับ
"huawei_android_led": "#FF0011", // ไม่บังคับ สี LED แบบ hex อุปกรณ์จะพยายามประมาณค่าให้ใกล้เคียงที่สุด
"huawei_android_vibration": 1, // ไม่บังคับ การสั่นแบบบังคับของ Huawei สำหรับ push ที่มีความสำคัญสูง
"huawei_android_sound": "sound.wav", // ไม่บังคับ หากเว้นว่างไว้ อุปกรณ์จะสร้าง
// เสียงระบบเริ่มต้น
"huawei_android_sound_off": true, // ไม่บังคับ เปิด/ปิดเสียงที่ตั้งค่าโดย
// ฟิลด์ "huawei_android_sound"
"huawei_android_custom_icon": "URL.png", // ไม่บังคับ
"huawei_android_gcm_ttl": 2400, // ไม่บังคับ พารามิเตอร์ Time to live - อายุการใช้งานสูงสุด
// ของข้อความเป็นวินาที
"huawei_android_banner": "URL.png", // ไม่บังคับ URL แบบเต็มไปยังไฟล์รูปภาพ
"huawei_android_root_params": { // ไม่บังคับ ออบเจ็กต์ key-value ที่กำหนดเอง
"key": "value" // พารามิเตอร์ระดับรากสำหรับผู้รับ payload ของ Huawei
},
"huawei_android_priority": 0, // ไม่บังคับ ค่าที่ถูกต้อง: -2, -1, 0, 1, 2
"huawei_android_ibc": "#0011AA", // ไม่บังคับ สีพื้นหลังไอคอนบน Lollipop
"huawei_android_lockscreen": 1, // ไม่บังคับ
"huawei_android_delivery_priority": "normal", // ไม่บังคับ "normal" หรือ "high" เปิดใช้งานการแจ้งเตือน
// การส่งในโหมดประหยัดพลังงาน
"huawei_android_group_id": "group_id" // ไม่บังคับ ตัวระบุเพื่อจัดกลุ่มการแจ้งเตือนที่เกี่ยวข้อง
}]
}
}

พารามิเตอร์ Safari

Anchor link to
Safari
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"safari_url_args": [ // จำเป็น แต่ค่าอาจว่างเปล่าได้
"firstArgument",
"secondArgument"
],
"safari_title": { // ไม่บังคับ Object หรือ string ชื่อเรื่องของการแจ้งเตือน
"en": "content"
},
"safari_content": { // ไม่บังคับ Object หรือ string เนื้อหาของการแจ้งเตือน
"en": "content"
},
"safari_action": "Click here", // ไม่บังคับ
"safari_ttl": 3600 // ไม่บังคับ พารามิเตอร์ Time to live — อายุการใช้งานสูงสุด
// ของข้อความเป็นวินาที
}]
}
}

พารามิเตอร์ Chrome

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"chrome_title": { // ไม่บังคับ Object หรือ string คุณสามารถระบุส่วนหัว
"en": "title" // ของข้อความในพารามิเตอร์นี้
},
"chrome_content": { // ไม่บังคับ Object หรือ string คุณสามารถระบุเนื้อหา
"en": "content" // ของข้อความในพารามิเตอร์นี้
},
"chrome_icon": "URL.png", // ไม่บังคับ URL แบบเต็มไปยังไอคอนหรือพาธไฟล์ทรัพยากรส่วนขยาย
"chrome_gcm_ttl": 3600, // ไม่บังคับ พารามิเตอร์ Time to live – อายุการใช้งานสูงสุดของข้อความเป็นวินาที
"chrome_duration": 20, // ไม่บังคับ สูงสุด 50 วินาที เปลี่ยนเวลาแสดงผลของ push ของ Chrome
// ตั้งค่าเป็น 0 เพื่อแสดง push จนกว่าผู้ใช้จะโต้ตอบ
"chrome_image": "image_URL", // ไม่บังคับ URL ไปยังรูปภาพขนาดใหญ่
"chrome_root_params": { // ไม่บังคับ ตั้งค่าพารามิเตอร์เฉพาะสำหรับข้อความที่ส่งไปยัง Chrome
"key": "value"
},
"chrome_button_text1": "text1", // ไม่บังคับ
"chrome_button_url1": "button1_URL", // ไม่บังคับ จะถูกละเว้นหากไม่ได้ตั้งค่า chrome_button_text1
"chrome_button_text2": "text2", // ไม่บังคับ
"chrome_button_url2": "button2_url" // ไม่บังคับ จะถูกละเว้นหากไม่ได้ตั้งค่า chrome_button_text2
}]
}
}

พารามิเตอร์ Firefox

Anchor link to
Firefox
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"firefox_title": { // ไม่บังคับ Object หรือ string คุณสามารถระบุส่วนหัวของข้อความได้ที่นี่
"en": "title"
},
"firefox_content": { // ไม่บังคับ Object หรือ string คุณสามารถระบุเนื้อหาของข้อความได้ที่นี่
"en": "content"
},
"firefox_icon": "URL.png", // ไม่บังคับ URL แบบเต็มไปยังไอคอนหรือพาธไปยัง
// ไฟล์ในทรัพยากรส่วนขยาย
"firefox_root_params": { // ไม่บังคับ ตั้งค่าพารามิเตอร์เฉพาะสำหรับข้อความที่ส่งไปยัง Firefox
"key": "value"
}
}]
}
}

พารามิเตอร์ Amazon

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"adm_header": { // ไม่บังคับ Object หรือ string คุณสามารถระบุส่วนหัวของข้อความได้ที่นี่
"en": "header"
},
"adm_content": { // ไม่บังคับ Object หรือ string คุณสามารถระบุเนื้อหาของข้อความได้ที่นี่
"en": "content"
},
"adm_root_params": { // ไม่บังคับ ออบเจ็กต์ key-value ที่กำหนดเอง
"key": "value"
},
"adm_sound": "push.mp3", // ไม่บังคับ
"adm_sound_off": true, // ไม่บังคับ เปิด/ปิดเสียงที่ตั้งค่าโดยฟิลด์ "adm_sound"
"adm_icon": "icon.png", // ไม่บังคับ URL แบบเต็มไปยังไอคอน
"adm_custom_icon": "URL.png", // ไม่บังคับ
"adm_banner": "URL.png", // ไม่บังคับ
"adm_ttl": 3600, // ไม่บังคับ พารามิเตอร์ Time to live — อายุการใช้งานสูงสุดของข้อความ
// เป็นวินาที
"adm_priority": -1 // ไม่บังคับ ลำดับความสำคัญของ push ในลิ้นชัก push ของ Amazon
// ค่าที่ถูกต้องคือ -2, -1, 0, 1 และ 2
}]
}
}

พารามิเตอร์ Mac OS X

Anchor link to
Mac OS X
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"mac_title": { // ไม่บังคับ Object หรือ string เพิ่มชื่อเรื่องสำหรับ push notification
"en": "title"
},
"mac_subtitle": { // ไม่บังคับ เพิ่มคำบรรยายสำหรับ push notification
"en": "subtitle"
},
"mac_content": { // ไม่บังคับ เพิ่มเนื้อหาสำหรับ push notification
"en": "content"
},
"mac_badges": 3, // ไม่บังคับ
"mac_sound": "sound.caf", // ไม่บังคับ
"mac_sound_off": true, // ไม่บังคับ เปิด/ปิดเสียงที่ตั้งค่าโดยฟิลด์ "mac_sound"
"mac_root_params": { // ไม่บังคับ
"content-available": 1
},
"mac_ttl": 3600 // ไม่บังคับ พารามิเตอร์ Time to live — อายุการใช้งานสูงสุดของข้อความเป็นวินาที
}]
}
}

พารามิเตอร์ Windows

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // จำเป็น รหัสแอปพลิเคชัน Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"notifications": [{
"wns_content": { // จำเป็น เนื้อหา (XML หรือ raw) ของการแจ้งเตือนที่เข้ารหัสใน base64 ของ MIME
// ในรูปแบบของ Object หรือ String
"en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==",
"de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4="
},
"wns_type": "Badge", // ไม่บังคับ 'Tile' | 'Toast' | 'Badge' | 'Raw'
"wns_tag": "myTag", // ไม่บังคับ ใช้ในนโยบายการแทนที่ Tile
// สตริงตัวอักษรและตัวเลขไม่เกิน 16 ตัวอักษร
"wns_cache": 1, // ไม่บังคับ (1|0) แปลเป็นค่า X-WNS-Cache-Policy
"wns_ttl": 600 // ไม่บังคับ เวลาหมดอายุสำหรับการแจ้งเตือนเป็นวินาที
}]
}
}

การตอบสนอง:

รหัสสถานะ HTTPstatus_codeคำอธิบาย
200200สร้างข้อความสำเร็จ
200210ข้อผิดพลาดของอาร์กิวเมนต์ ดูข้อมูลเพิ่มเติมใน status_message
400N/Aสตริงคำขอมีรูปแบบไม่ถูกต้อง
500500ข้อผิดพลาดภายใน

การติดตามข้อความ API

Anchor link to

เพื่อวัตถุประสงค์ในการปรับสมดุลภาระงาน เราจะไม่จัดเก็บข้อความที่ส่งผ่าน API ด้วยพารามิเตอร์ “devices” ที่มีอุปกรณ์น้อยกว่า 10 เครื่องในอาร์เรย์ ด้วยเหตุนี้ ข้อความดังกล่าวจะไม่แสดงใน Message History ของคุณ

หากต้องการดูรายงาน push ในระหว่างขั้นตอนการทดสอบ ให้ใช้ API messaging tracing การเปิดตัวเลือกนี้ ON จะช่วยให้คุณ สามารถลบล้างขีดจำกัดนี้เป็นเวลา 1 ชั่วโมงและบันทึก push ดังกล่าวใน Message History การติดตามข้อความ API จะปิด OFF โดยอัตโนมัติหลังจาก 1 ชั่วโมง

การติดตามข้อความ API สามารถเปิดใช้งานได้ที่หน้า Message History โดยคลิก Start API messaging tracing ที่มุมขวาบน

เงื่อนไข Tag

Anchor link to

แต่ละเงื่อนไข Tag เป็นอาร์เรย์เช่น [tagName, operator, operand] โดยที่

  • tagName: ชื่อของ Tag
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
  • operand: string | integer | array | date

คำอธิบาย Operator

Anchor link to
  • EQ: ค่า Tag เท่ากับ operand;
  • IN: ค่า Tag ตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ);
  • NOTEQ: ค่า Tag ไม่เท่ากับ operand;
  • NOTIN: ค่า Tag ไม่ตัดกับ operand (operand ต้องเป็นอาร์เรย์เสมอ);
  • GTE: ค่า Tag มากกว่าหรือเท่ากับ operand;
  • LTE: ค่า Tag น้อยกว่าหรือเท่ากับ operand;
  • BETWEEN: ค่า Tag มากกว่าหรือเท่ากับค่า operand ขั้นต่ำ แต่น้อยกว่าหรือเท่ากับค่า operand สูงสุด (operand ต้องเป็นอาร์เรย์เสมอ);
  • NOTSET: ไม่ได้ตั้งค่า Tag ไม่พิจารณา Operand;
  • ANY: Tag มีค่าใดๆ ไม่พิจารณา Operand

String tags

Anchor link to

Operators ที่ถูกต้อง: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Operands ที่ถูกต้อง:

  • EQ, NOTEQ: operand ต้องเป็นสตริง;
  • IN, NOTIN: operand ต้องเป็นอาร์เรย์ของสตริงเช่น ["value 1", "value 2", "value N"];
  • NOTSET: ไม่ได้ตั้งค่า Tag ไม่พิจารณา Operand;
  • ANY: Tag มีค่าใดๆ ไม่พิจารณา Operand

Integer tags

Anchor link to

Operators ที่ถูกต้อง: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Operands ที่ถูกต้อง:

  • EQ, NOTEQ, GTE, LTE: operand ต้องเป็นจำนวนเต็ม;
  • IN, NOTIN: operand ต้องเป็นอาร์เรย์ของจำนวนเต็มเช่น [value 1, value 2, value N];
  • BETWEEN: operand ต้องเป็นอาร์เรย์ของจำนวนเต็มเช่น [min_value, max_value];
  • NOTSET: ไม่ได้ตั้งค่า Tag ไม่พิจารณา Operand;
  • ANY: Tag มีค่าใดๆ ไม่พิจารณา Operand

Operators ที่ถูกต้อง: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Operands ที่ถูกต้อง:

  • "YYYY-MM-DD 00:00" (string)
  • unix timestamp 1234567890 (integer)
  • "N days ago" (string) สำหรับ operators EQ, BETWEEN, GTE, LTE

Boolean tags

Anchor link to

Operators ที่ถูกต้อง: EQ, NOTSET, ANY
Operands ที่ถูกต้อง: 0, 1, true, false

Operators ที่ถูกต้อง: IN, NOTIN, NOTSET, ANY
Operands ที่ถูกต้อง: operand ต้องเป็นอาร์เรย์ของสตริงเช่น ["value 1", "value 2", "value N"]

Snippets ของ /createMessage

Anchor link to

ตัวอย่างคำขอ /createMessage:

#!/bin/bash
#Usage
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` usage: api_token appid message";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='One push to rule them all!'
fi;
echo -e "Response:"
curl --data-binary "
{\"request\":
{\"application\":\"$2\",
\"auth\":\"$1\",
\"notifications\":
[{
\"send_date\": \"now\",
\"content\": \"$MESSAGE\"
}]
}
}" \
-H "Content-type: application/json" \
"https://api.pushwoosh.com/json/1.3/createMessage"
echo "";
exit 0;

deleteMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/deleteMessage

ลบข้อความ ไม่ว่าจะยังคงตั้งเวลาไว้หรือส่งไปแล้ว สำหรับข้อความที่ตั้งเวลาไว้ การดำเนินการนี้จะลบข้อความออกจาก Message History ทันที — สำหรับข้อความที่ส่งไปแล้ว โปรดดูข้อควรระวังด้านล่าง

การส่งติดตามผลที่สร้างขึ้นจากข้อความนี้ด้วย Resend to non-openers จะไม่ได้รับผลกระทบ — ให้ลบหรือยกเลิกแต่ละรายการแยกกัน

ใช้ /cancelMessage แทนหากคุณต้องการหยุดการส่งแต่ยังคงเก็บข้อความไว้ใน Message History ด้วยสถานะ canceled

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringMessage code ที่ได้รับจากคำขอ /createMessage
{
"status_code": 200,
"status_message": "OK"
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // จำเป็น รหัสข้อความที่ได้รับจาก /createMessage
}
}

รหัสสถานะ:

รหัสสถานะ HTTPstatus_codeคำอธิบาย
200200ลบข้อความสำเร็จ
200210ข้อผิดพลาดของอาร์กิวเมนต์ เช่น ข้อความยังอยู่ในสถานะ creating ดูข้อมูลเพิ่มเติมใน status_message
400N/Aสตริงคำขอมีรูปแบบไม่ถูกต้อง
500500ข้อผิดพลาดภายใน
<?php
// see https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Great, my message has been deleted !';
} else {
print 'Oups, the deletion failed :-(';
print 'Status code : ' . $response->getStatusCode();
print 'Status message : ' . $response->getStatusMessage();
}

getMessageDetails

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getMessageDetails

ดึงรายละเอียดข้อความ

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringMessage code หรือ message ID
{
"status_code": 200,
"status_message": "OK",
"response": {
"message": {
"id": 2068991743,
"created": "2016-09-14 17:19:42",
"send_date": "2016-09-14 17:19:41",
"status": "done",
"content": {
"en": "Hello {Name|CapitalizeFirst|friend}! 🚀"
},
"platforms": "[1]",
"ignore_user_timezone": "1",
"code": "XXXX-92B4C3C5-A7F5EF70",
"data": {
"key": "value"
}
}
}
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // จำเป็น รหัสข้อความหรือ message ID
}
}

createTargetedMessage เลิกใช้งานแล้ว

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createTargetedMessage

สร้าง push notification แบบกำหนดเป้าหมายใหม่

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
devices_filter*stringดูหมายเหตุด้านล่าง
send_date*stringYYYY-MM-DD HH:mm หรือ ‘now’
ignore_user_timezonebooleanหากไม่ระบุ จะใช้ UTC-0 เป็นค่าเริ่มต้นสำหรับ “send_date”
timezonestringหากไม่ระบุ จะใช้ UTC-0 เป็นค่าเริ่มต้นสำหรับ “send_date”
campaignstringรหัสของแคมเปญ ที่คุณต้องการกำหนดข้อความ push นี้
content*stringเนื้อหาการแจ้งเตือน ดูรายละเอียดในตัวอย่างคำขอ
transactionIdstringตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการซ้ำซ้อนของข้อความในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง Pushwoosh เป็นเวลา 5 นาที
linkstringลิงก์ที่จะเปิดเมื่อผู้ใช้เปิดข้อความ push
minimize_linkinteger0 - ไม่ย่อ, 2 - bit.ly ค่าเริ่มต้น = 2
dataobjectสตริง JSON หรือออบเจ็กต์ JSON จะถูกส่งเป็นพารามิเตอร์ “u” ใน payload (แปลงเป็นสตริง JSON)
presetstringรหัส Preset
send_rateintegerการควบคุมปริมาณ ค่าที่ถูกต้องคือ 100 ถึง 1000 pushes ต่อวินาที
inbox_datestringระบุว่าจะลบข้อความออกจาก Inbox เมื่อใด
inbox_imagestringURL ของรูปภาพที่จะแสดงใกล้กับข้อความใน Inbox
{
"status_code": 200,
"status_message": "OK",
"response": {
"messageCode": "97B0-C7473871-2FBDFDC6"
}
}

ตัวอย่างการตอบสนองเพิ่มเติม:

{
"status_code": 210,
"status_message": "Errors occurred while compiling filter",
"response": {
"errors": [{
"message": "Invalid tag set specification. \")\" expected.",
"type": "syntax"
}]
}
}
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // จำเป็น ไวยากรณ์อธิบายไว้ด้านล่าง
"send_date": "now", // ไม่บังคับ YYYY-MM-DD HH:mm หรือ 'now'
"ignore_user_timezone": true, // ไม่บังคับ
"timezone": "America/New_York", // ไม่บังคับ หากไม่ระบุ จะใช้ UTC-0 เป็นค่าเริ่มต้นสำหรับ "send_date"
// ข้อมูลเพิ่มเติม https://php.net/manual/timezones.php
"campaign": "CAMPAIGN_CODE", // ไม่บังคับ รหัสแคมเปญที่คุณต้องการกำหนดข้อความ push นี้
"content": { // ไม่บังคับ Object หรือ string ใช้ "wns_content" แทนสำหรับ Windows
"en": "English",
"de": "Deutsch"
},
"transactionId": "unique UUID", // ไม่บังคับ ตัวระบุข้อความที่ไม่ซ้ำกันเพื่อป้องกันการซ้ำซ้อนของข้อความ
// ในกรณีที่เกิดปัญหาเครือข่าย จัดเก็บไว้ที่ฝั่ง
// Pushwoosh เป็นเวลา 5 นาที
"rich_media": "XXXXX-XXXXX", // ไม่บังคับ คัดลอกรหัส Rich Media จากแถบ URL ของ
// หน้าแก้ไข Rich Media ใน Pushwoosh Control Panel
"link": "https://google.com", // ไม่บังคับ สำหรับ deeplinks ให้เพิ่ม "minimize_link": 0
"minimize_link": 0, // ไม่บังคับ 0 — ไม่ย่อ, 2 — bitly ค่าเริ่มต้น = 2
// Google URL shortener ถูกปิดใช้งานตั้งแต่วันที่ 30 มีนาคม 2019
// โปรดทราบว่าตัวย่อลิงก์มีข้อจำกัด
// เกี่ยวกับจำนวนการเรียก
"data": { // ไม่บังคับ สตริง JSON หรือออบเจ็กต์ JSON
"key": "value" // จะถูกส่งเป็นพารามิเตอร์ "u" ใน payload
}, // (แปลงเป็นสตริง JSON)
"preset": "XXXXX-XXXXX", // ไม่บังคับ รหัส Push Preset จาก Control Panel ของคุณ
"send_rate": 100, // ไม่บังคับ การควบคุมปริมาณ ค่าที่ถูกต้องคือ 100 ถึง 1000 pushes/วินาที
"dynamic_content_placeholders": { // ไม่บังคับ ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนแท็กของอุปกรณ์
"firstname": "John",
"lastname": "Doe"
},
// หากต้องการบันทึกข้อความไปยัง Inbox ผ่าน API ให้ใช้ "inbox_date" หรือ "inbox_image"
// ข้อความจะถูกบันทึกเมื่อมีการใช้พารามิเตอร์เหล่านี้อย่างน้อยหนึ่งตัว
"inbox_image": "Inbox image URL", // ไม่บังคับ รูปภาพที่จะแสดงใกล้กับข้อความ
"inbox_date": "2017-02-02" // ไม่บังคับ ระบุว่าจะลบข้อความออกจาก Inbox เมื่อใด
// ข้อความจะถูกลบออกจาก Inbox เวลา 00:00:01 UTC ของ
// วันที่ระบุ ดังนั้นวันก่อนหน้าคือวันสุดท้าย
// ที่ผู้ใช้สามารถเห็นข้อความใน Inbox ของตนได้
// หากไม่ระบุ วันที่ลบเริ่มต้นคือวันถัดไป
// หลังจากวันที่ส่ง
}
}

พื้นฐานนั้นง่ายมาก – ตัวกรองทั้งหมดจะดำเนินการบน เซต ของเอนทิตี

เซตถูกกำหนดเป็น:

1. อุปกรณ์ที่สมัครรับแอปเฉพาะ (A);
2. อุปกรณ์ที่ตรงกับค่าแท็กที่ระบุ (T) หรือค่าแท็กเฉพาะแอป (AT);\

ไวยากรณ์

Anchor link to

ลองดูตัวอย่างบางส่วนตามรายการด้านบน

การกำหนดเป้าหมายผู้สมัครสมาชิกแอป

Anchor link to

ตัวกรอง “A” กำหนดเซตของอุปกรณ์ที่สมัครรับแอปเฉพาะ:

A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])

โดยที่

  • “XXXXX-XXXXX” – รหัสแอปพลิเคชัน Pushwoosh
  • [“iOS”, “Android”, …] – อาร์เรย์ของแพลตฟอร์มเป้าหมาย หากไม่ระบุ ข้อความจะถูกส่งไปยังทุกแพลตฟอร์มที่พร้อมใช้งานสำหรับแอปนี้

การกรองตามค่าแท็ก

Anchor link to

ตัวกรอง “T” กำหนดเซตของอุปกรณ์ที่มีค่าแท็กที่ระบุไว้

T(\"Age\", IN, [17,20])

กำหนดเซตของอุปกรณ์ที่มีแท็ก “age” ตั้งค่าเป็นหนึ่งในค่า: 17, 18, 19, 20

ประเภทแท็กและตัวดำเนินการ

Anchor link to

สิ่งที่สำคัญมากที่ต้องเข้าใจคือแท็กจะถูกแชร์ระหว่างแอป และเป็นเครื่องมือที่ทรงพลังมากสำหรับการแบ่งกลุ่มและกรองผู้ใช้เป้าหมายของคุณโดยไม่ต้องผูกมัดตัวเองกับแอปใดแอปหนึ่ง

แท็กอาจเป็นหนึ่งในสามประเภทที่แตกต่างกัน: String, Integer, List ประเภทของแท็กจะกำหนดว่าคุณสามารถใช้ตัวดำเนินการใดกับแท็กนั้นได้

String tags

Anchor link to

ตัวดำเนินการที่ใช้ได้:

  • EQ – กำหนดเป้าหมายอุปกรณ์ที่มีค่าแท็กที่ระบุ
  • IN – กำหนดเป้าหมายอุปกรณ์ที่มีค่าแท็กใดๆ ที่ระบุ
  • NOTIN – กำหนดเป้าหมายอุปกรณ์ที่ไม่มีค่าแท็กที่ระบุ
  • NOTEQ – กำหนดเป้าหมายอุปกรณ์ที่มีค่าแท็กไม่เท่ากับค่าที่ระบุ
  • NOTSET – กำหนดเป้าหมายอุปกรณ์ที่ไม่มีค่าสำหรับแท็กที่ระบุ
  • ANY – กำหนดเป้าหมายอุปกรณ์ที่มีค่าใดๆ ที่ตั้งไว้สำหรับแท็กที่ระบุ

ตัวอย่าง:

T (\"Age\", EQ, 30) – กรองผู้ใช้ที่มีอายุ 30 ปี

T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – กรองผู้ใช้ที่เลือกสีแดง เขียว หรือน้ำเงินเป็นสีโปรด

T (\"Name", NOTSET, \"\") – กำหนดเป้าหมายอุปกรณ์ที่ไม่มีค่าสำหรับแท็ก Name

คุณสามารถใช้ค่าตัวเลขกับแท็กสตริงได้ แต่ค่าดังกล่าวจะถูกแปลงเป็นสตริง

Integer tags

Anchor link to

ตัวดำเนินการที่ใช้ได้:

  • GTE – มากกว่าหรือเท่ากับค่าที่ระบุ
  • LTE– น้อยกว่าหรือเท่ากับค่าที่ระบุ
  • EQ – เท่ากับค่าที่ระบุ
  • BETWEEN – ระหว่างค่าต่ำสุดและสูงสุดที่ระบุ
  • IN – ค่าใดๆ ที่ระบุ
  • NOTIN – ไม่มีค่าที่ระบุไว้สำหรับอุปกรณ์
  • NOTEQ – อุปกรณ์ที่มีค่าแท็กไม่เท่ากับค่าที่ระบุ
  • NOTSET – อุปกรณ์ที่ไม่มีค่าสำหรับแท็กที่ระบุ
  • ANY – อุปกรณ์ที่มีค่าใดๆ ที่ตั้งไว้สำหรับแท็กที่ระบุ

ตัวอย่าง:

T (\"Level\", EQ, 14) – กรองผู้ใช้ที่อยู่ในระดับ 14 เท่านั้น

T (\"Level\", BETWEEN, [1,5) – กรองผู้ใช้ที่อยู่ในระดับ 1, 2, 3, 4 และ 5

T (\"Level", GTE, 29) – กำหนดเป้าหมายผู้ใช้ที่ถึงระดับอย่างน้อย 29

ตัวดำเนินการที่ใช้ได้:

  • IN – อุปกรณ์ที่มีค่าแท็กใดๆ ที่ระบุ

ตัวอย่าง: T("Category", IN, ["breaking_news","business","politics"])

ตัวดำเนินการที่ใช้ได้:

  • GTE – มากกว่าหรือเท่ากับค่าที่ระบุ
  • LTE– น้อยกว่าหรือเท่ากับค่าที่ระบุ
  • EQ – เท่ากับค่าที่ระบุ
  • BETWEEN – ระหว่างค่าต่ำสุดและสูงสุดที่ระบุ
  • NOTEQ – อุปกรณ์ที่มีค่าแท็กไม่เท่ากับค่าที่ระบุ
  • NOTSET – อุปกรณ์ที่ไม่มีค่าสำหรับแท็กที่ระบุ
  • ANY – อุปกรณ์ที่มีค่าใดๆ ที่ตั้งไว้สำหรับแท็กที่ระบุ

ตัวอย่าง:

AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])

AT("7777D-322A7","Last Application Open", GTE, "90 days ago")

การดำเนินการ

Anchor link to
  • “+” – รวมสองเซต (เท่ากับ OR)
  • “*” – ตัดกันสองเซต (เท่ากับ AND)
  • “\” – ลบเซตหนึ่งออกจากอีกเซตหนึ่ง (เท่ากับ NOT)

การดำเนินการทั้งหมดเป็นแบบเชื่อมโยงจากซ้ายไปขวา ”+” และ ”*” มีลำดับความสำคัญเท่ากัน "" มีลำดับความสำคัญสูงกว่า คุณสามารถใช้วงเล็บเพื่อกำหนดลำดับความสำคัญของการคำนวณได้

โปรดทราบว่าการดำเนินการ “\” ไม่สามารถสลับที่ได้ A("12345-12345") \ A("67890-67890") ไม่เหมือนกับ A("67890-67890") \ A("12345-12345")

getPushHistory เลิกใช้งานแล้ว

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getPushHistory

รับประวัติข้อความพร้อมรายละเอียด push

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
limitMessagesintegerจำกัดจำนวนข้อความในการตอบสนอง ค่าที่เป็นไปได้คือ 10 ถึง 1000
sourcestringแหล่งที่มาของประวัติ push อาจเป็น null หรือ: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”
searchBystringค่าที่เป็นไปได้ในการค้นหา อาจเป็น null หรือ: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”
valuestringค่าค้นหาที่ตั้งค่าตามฟิลด์ “searchBy”
lastNotificationIDstringใช้สำหรับการแบ่งหน้า messageId สุดท้ายจากการเรียก /getPushHistory ก่อนหน้า ดูรายละเอียดด้านล่าง
{
"status_code": 200,
"status_message": "OK",
"response": {
"rows": [{
"id": 10191611434,
"code": "8071-07AD1171-77238AD1",
"createDate": "2020-09-14 12:26:21",
"sendDate": "2020-09-14 12:26:21",
"content": {
"en": "Hello!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": "E3A64-A5F3C",
"filter_conditions": "#In-app Purchase(≠0)",
"filter_name": "Purchased something",
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": null,
"open": {
"C90C0-0E786": {
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"IOS": 1
}
},
"ctr": {
"C90C0-0E786": 0
}
}, {
"id": 10191609202,
"code": "41CA-83F8E0D7-7A63822B",
"createDate": "2020-09-14 12:25:55",
"sendDate": "2020-09-14 12:25:55",
"content": {
"en": "Hi!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": null,
"filter_conditions": null,
"filter_name": null,
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": {
"2D732-BB981": "News"
},
"open": {
"C90C0-0E786": {
"CHROME": 0,
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"CHROME": 1,
"IOS": 2
}
},
"ctr": {
"C90C0-0E786": 0
}
}]
}
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"source": null, // ไม่บังคับ ค่าที่เป็นไปได้คือ null, "CP", "API", "GeoZone",
// "RSS", "AutoPush", "A/B Test"
"searchBy": "applicationCode", // ไม่บังคับ ค่าที่เป็นไปได้คือ "", "notificationID",
// "notificationCode", "applicationCode", "campaignCode"
"value": "C8717-703F2", // ไม่บังคับ ค่าค้นหาที่ตั้งค่าตามฟิลด์ "searchBy"
"lastNotificationID": 0, // ไม่บังคับ ใช้สำหรับการแบ่งหน้า messageId สุดท้ายจาก
// การเรียก /getPushHistory ก่อนหน้า ดูรายละเอียดด้านล่าง
"limitMessages": 1000 // ไม่บังคับ ค่าที่เป็นไปได้คือ 10 ถึง 1000
}
}

เมธอดนี้จะส่งคืนข้อความ 1000 ข้อความจากบัญชีที่จัดเรียงตาม message Id หากต้องการรับหน้าที่สอง ให้ระบุ message Id สุดท้ายของการตอบสนองก่อนหน้าในพารามิเตอร์ lastNotificationId

ประเภทข้อมูลการตอบสนอง

Anchor link to
id -- int | 0
code -- string
createDate -- string (date: %Y-%m-%d %H:%M:%S)
sendDate -- string (date: %Y-%m-%d %H:%M:%S)
content -- array ( dict {lang: value} | list [])
title -- array ( dict {lang: value} | list [])
subtitle -- array ( dict {lang: value} | list [])
url -- string
ios_title -- string | array ( dict {lang: value} ) | null
ios_subtitle -- string | array ( dict {lang: value} ) | null
ios_root_params -- dict (JSON) | null
android_header -- string | array ( dict {lang: value} ) | null
android_root_params -- dict (JSON) | null
conditions -- list (JSON) | null
conditions_operator -- string | null
filter_code -- string | null
filter_name -- string | null
filter_conditions -- string | null
geozone -- string | null
campaignId -- string | ""
campaignName -- string | ""
subscription_segments (obsolete) -- list (JSON) | null
data -- dict (JSON) | null
open -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}
sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}
ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}
errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}

cancelMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/cancelMessage

ยกเลิกการส่งข้อความที่ตั้งเวลาไว้ ข้อความจะยังคงอยู่ใน Message History พร้อมสถานะ canceled การส่งติดตามผลที่สร้างขึ้นจากข้อความนี้ด้วย Resend to non-openers จะถูกยกเลิกด้วยเช่นกัน

ใช้ /deleteMessage แทนหากคุณต้องการลบข้อความออกจาก Message History (ดูข้อควรระวังเกี่ยวกับข้อความที่ส่งไปแล้ว)

Request Body

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringMessage code ที่ได้รับจากการตอบสนองของ /createMessage
{
"status_code":200,
"status_message":"OK"
}
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // จำเป็น รหัสข้อความที่ได้รับจากการตอบสนองของ /createMessage
}
}

รหัสสถานะ:

รหัสสถานะ HTTPstatus_codeคำอธิบาย
200200ยกเลิกข้อความสำเร็จ
200210ข้อผิดพลาดของอาร์กิวเมนต์ ดูข้อมูลเพิ่มเติมใน status_message
400N/Aสตริงคำขอมีรูปแบบไม่ถูกต้อง
500500ข้อผิดพลาดภายใน