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

Messages API

createMessage

Anchor link to

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

สร้าง push notification ใหม่

เนื้อหาของคำขอ

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
application*stringรหัสแอปพลิเคชัน Pushwoosh
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, // ไม่บังคับ การควบคุมปริมาณ (Throttling) ค่าที่ถูกต้องคือตั้งแต่ 100 ถึง 1000 pushes/second
"send_rate_avoid": true, // ไม่บังคับ หากตั้งค่าเป็น true ขีดจำกัดการควบคุมปริมาณจะไม่ถูกนำไปใช้กับ
// push notification นี้โดยเฉพาะ
// เกี่ยวข้องกับการทำเทมเพลต โปรดดูคู่มือ Template Engine เพื่อเรียนรู้เพิ่มเติม
"template_bindings": { // ไม่บังคับ
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // ไม่บังคับ ตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิกแทนแท็กของอุปกรณ์
"firstname": "John",
"lastname": "Doe"
},
// พารามิเตอร์ Frequency capping ตรวจสอบให้แน่ใจว่าได้กำหนดค่า Global frequency capping ใน Control Panel แล้ว
"capping_days": 30, // ไม่บังคับ จำนวนวันสำหรับ frequency capping (สูงสุด 30 วัน)
"capping_count": 10, // ไม่บังคับ จำนวน push สูงสุดที่สามารถส่งจาก
// แอปเฉพาะไปยังอุปกรณ์หนึ่งๆ ภายในระยะเวลา 'capping_days'
// ในกรณีที่ข้อความที่สร้างขึ้นเกินขีดจำกัด
// 'capping_count' สำหรับอุปกรณ์ ข้อความนั้นจะไม่
// ถูกส่งไปยังอุปกรณ์นั้น
"capping_exclude": true, // ไม่บังคับ หากตั้งค่าเป็น true push notification นี้จะไม่
// ถูกนับรวมใน capping สำหรับ push ในอนาคต
"capping_avoid": true, // ไม่บังคับ หากตั้งค่าเป็น true capping จะไม่ถูกนำไปใช้กับ
// 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": [ // ไม่บังคับ ระบุโทเค็นหรือ hwids เพื่อส่ง push ที่กำหนดเป้าหมาย
"hwid_XXXX" // notifications ไม่เกิน 1000 โทเค็น/hwids ใน
], // อาร์เรย์ หากตั้งค่า ข้อความจะถูกส่งไปยัง
// อุปกรณ์ในรายการเท่านั้น ไม่อนุญาตให้ใช้ Application Group สำหรับรายการอุปกรณ์
// iOS push tokens สามารถเป็นตัวพิมพ์เล็กเท่านั้น
// push notifications ที่เน้นผู้ใช้เป็นศูนย์กลาง
"users": [ // ไม่บังคับ หากตั้งค่า ข้อความจะถูกส่งไปยัง
"user_XXXX" // User ID ที่ระบุเท่านั้น (ตั้งค่าผ่านการเรียก /registerUser)
], // หากระบุพร้อมกับพารามิเตอร์ devices
// พารามิเตอร์หลังจะถูกละเว้น ไม่เกิน 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, // จำเป็น พารามิเตอร์นี้จำเป็นสำหรับการส่ง push notification แบบ VoIP
"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, // จำเป็น พารามิเตอร์นี้จำเป็นสำหรับการส่ง push notification แบบ VoIP
"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", // ไม่บังคับ ID หมวดหมู่ 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 เดียวกันจะถูกจัดกลุ่ม
// บนหน้าจอล็อกและในศูนย์การแจ้งเตือน
"ios_critical": true, // ไม่บังคับ ทำเครื่องหมายการแจ้งเตือน iOS เป็นการแจ้งเตือนที่สำคัญ
// เล่นเสียงแม้ว่าอุปกรณ์จะปิดเสียงหรือ
// เปิดโหมดห้ามรบกวน
"ios_category_custom": "category", // ไม่บังคับ หมวดหมู่ APNS ที่กำหนดเอง
"ios_interruption_level": "active", // ไม่บังคับ หนึ่งใน "passive", "active", "time-sensitive",
// "critical" ระบุความสำคัญและ
// เวลาในการส่งการแจ้งเตือน โปรดดู
// คู่มือ One-time push สำหรับรายละเอียด
"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 พารามิเตอร์นี้จำเป็นสำหรับการส่ง push notification แบบ VoIP
"callerName": "callerName", // ไม่บังคับ พารามิเตอร์ VoIP ชื่อผู้โทร หากไม่ระบุ จะแสดง "unknown caller"
"video": true, // ไม่บังคับ พารามิเตอร์ VoIP ระบุว่ารองรับการโทรวิดีโอหรือไม่
}, // Message ID ที่ระบุ (รับ ID จากประวัติข้อความ)
"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, // ไม่บังคับ บังคับให้สั่นสำหรับ push ที่มีความสำคัญสูงบน Android
"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 เดียวกันจะถูกจัดกลุ่มใน
// ศูนย์การแจ้งเตือน
}]
}
}

พารามิเตอร์ 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, // ไม่บังคับ บังคับให้สั่นสำหรับ push ที่มีความสำคัญสูงบน Huawei
"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 เครื่องในอาร์เรย์ ด้วยเหตุนี้ ข้อความดังกล่าวจะไม่แสดงในประวัติข้อความของคุณ

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

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

เงื่อนไขแท็ก

Anchor link to

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

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

คำอธิบายตัวดำเนินการ

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

แท็กสตริง

Anchor link to

ตัวดำเนินการที่ถูกต้อง: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Operands ที่ถูกต้อง:

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

แท็กจำนวนเต็ม

Anchor link to

ตัวดำเนินการที่ถูกต้อง: 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: ไม่ได้ตั้งค่าแท็ก ไม่พิจารณา Operand;
  • ANY: แท็กมีค่าใดๆ ไม่พิจารณา Operand

แท็กวันที่

Anchor link to

ตัวดำเนินการที่ถูกต้อง: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Operands ที่ถูกต้อง:

  • "YYYY-MM-DD 00:00" (สตริง)
  • unix timestamp 1234567890 (จำนวนเต็ม)
  • "N days ago" (สตริง) สำหรับตัวดำเนินการ EQ, BETWEEN, GTE, LTE

แท็กบูลีน

Anchor link to

ตัวดำเนินการที่ถูกต้อง: EQ, NOTSET, ANY
Operands ที่ถูกต้อง: 0, 1, true, false

แท็กรายการ

Anchor link to

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

/createMessage snippets

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

ลบข้อความที่ตั้งเวลาไว้

เนื้อหาของคำขอ

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringรหัสข้อความ ที่ได้รับในคำขอ /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ข้อผิดพลาดภายใน
<?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

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

เนื้อหาของคำขอ

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringรหัสข้อความ หรือ 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" // จำเป็น รหัสข้อความหรือ ID ข้อความ
}
}

createTargetedMessage

Anchor link to

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

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

เนื้อหาของคำขอ

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การควบคุมปริมาณ (Throttling) ค่าที่ถูกต้องคือตั้งแต่ 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
// บริการย่อ URL ของ Google ถูกปิดใช้งานตั้งแต่วันที่ 30 มีนาคม 2019
// โปรดทราบว่าบริการย่อลิงก์มีข้อจำกัด
// เกี่ยวกับจำนวนการเรียกใช้
"data": { // ไม่บังคับ สตริง JSON หรืออ็อบเจกต์ JSON
"key": "value" // จะถูกส่งเป็นพารามิเตอร์ "u" ใน payload
}, // (แปลงเป็นสตริง JSON)
"preset": "XXXXX-XXXXX", // ไม่บังคับ รหัส Push Preset จาก Control Panel ของคุณ
"send_rate": 100, // ไม่บังคับ การควบคุมปริมาณ (Throttling) ค่าที่ถูกต้องคือตั้งแต่ 100 ถึง 1000 pushes/second
"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 ประเภทของแท็กจะกำหนดว่าคุณสามารถใช้ตัวดำเนินการใดกับแท็กนั้นๆ ได้

แท็กสตริง

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

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

แท็กจำนวนเต็ม

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 เป็นอย่างน้อย

แท็กรายการ

Anchor link to

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

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

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

แท็กวันที่

Anchor link to

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

  • 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

เนื้อหาของคำขอ

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 ข้อความจากบัญชีที่จัดเรียงตาม ID ข้อความ หากต้องการรับหน้าที่สอง ให้ระบุ 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

ยกเลิกข้อความที่ตั้งเวลาไว้

เนื้อหาของคำขอ

Anchor link to
ชื่อประเภทคำอธิบาย
auth*stringAPI access token จาก Pushwoosh Control Panel
message*stringรหัสข้อความ ที่ได้รับในการตอบกลับของ /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ข้อผิดพลาดภายใน