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

Presets API

Push preset คือเทมเพลตการแจ้งเตือนแบบพุชที่สามารถนำกลับมาใช้ใหม่ได้ ซึ่งเป็นอ็อบเจกต์เดียวกับที่คุณสร้างในตัวแก้ไขพุชของ Control Panel API นี้จัดการเฉพาะ push presets เท่านั้น ส่วนพรีเซ็ตของ SMS, WhatsApp, Kakao, LINE และ Viber แต่ละรายการจะมีบริการพรีเซ็ตเฉพาะของตัวเอง ซึ่งไม่ได้ครอบคลุมในที่นี้

ใช้ code ของพรีเซ็ตเพื่อส่งผ่าน Notify (payload preset) หรือ Customer Journey Send push point

URL พื้นฐาน

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

Endpoints ทั้งหมดให้บริการผ่าน HTTPS คำขอและการตอบกลับใช้ application/json เว้นแต่จะระบุไว้เป็นอย่างอื่น

การรับรองความถูกต้อง

Anchor link to

ทุกคำขอต้องมีเฮดเดอร์ Authorization พร้อมกับ Server API token ของคุณ:

Authorization: Api YOUR_API_TOKEN

ข้อตกลง

Anchor link to
  • การตั้งชื่อฟิลด์: ส่วนเนื้อหาของคำขอและพารามิเตอร์ของ query/path ยอมรับ lowerCamelCase (ตัวอย่างเช่น sendType, localizedProperties, searchByName) — เซิร์ฟเวอร์จะ unmarshal ทั้งสองรูปแบบ การตอบกลับจะถูก marshaled โดยใช้ชื่อฟิลด์ proto ในรูปแบบ snake_case เสมอ (localized_properties, platform_properties, per_page และอื่นๆ) ตัวอย่างการตอบกลับและการอ้างอิง Preset object ด้านล่างใช้รูปแบบนั้น
  • code: การตอบกลับของพรีเซ็ตทุกรายการจะมี code ของตัวเอง ซึ่งสร้างขึ้นเมื่อ Create ส่ง code นี้ไปยัง Get, Update, UpdatePartial, Delete, Clone และไปยัง API การส่งข้อความ/journey ที่กล่าวถึงข้างต้น
  • คีย์แพลตฟอร์ม: แมป platforms และ open_actions จะใช้ device type code ที่เป็นตัวเลขเป็นคีย์ (1 สำหรับ iOS, 3 สำหรับ Android และอื่นๆ) ส่วน platform_properties จะใช้ชื่อ enum ของแพลตฟอร์มเป็นคีย์แทน (IOS, ANDROID, HUAWEI_ANDROID, OSX — ซึ่งครอบคลุมเพียงสี่แพลตฟอร์มนี้เท่านั้น)
  • ฟิลด์ที่ไม่ได้ระบุค่า: การตอบกลับของ Get, Create และ Clone จะรวมทุกฟิลด์ของ Preset object แม้ว่าจะเป็นค่าว่างหรือค่าศูนย์ก็ตาม List จะส่งคืนชุดฟิลด์ที่ลดลง — ดูที่ List ด้านล่าง Update และ UpdatePartial จะไม่ส่งคืนฟิลด์พรีเซ็ตใดๆ เลย — ดู ข้อควรระวัง ในส่วนของเมธอดเหล่านั้น

การตอบกลับข้อผิดพลาด

Anchor link to
สถานะ HTTPความหมาย
400 Bad Requestอาร์กิวเมนต์ไม่ถูกต้อง — ฟิลด์ที่จำเป็นขาดหายไปหรือมีรูปแบบไม่ถูกต้อง หรือเงื่อนไขเบื้องต้นไม่สำเร็จ (ตัวอย่างเช่น การโคลนโดยไม่มี name)
401 Unauthorizedเฮดเดอร์ Authorization ขาดหายไปหรือไม่ถูกต้อง
403 Forbiddenแอปพลิเคชันหรือพรีเซ็ตไม่ได้เป็นของบัญชีของผู้เรียก
404 Not Foundไม่พบพรีเซ็ตหรือแอปพลิเคชัน
500 Internal Server Errorเกิดข้อผิดพลาดที่ไม่คาดคิดฝั่งเซิร์ฟเวอร์

Delete บนพรีเซ็ตที่ยังคงถูกใช้งานโดย Send push point ของ journey ที่กำลังทำงานหรือหยุดชั่วคราวอยู่ จะส่งคืน 400 Bad Request (ซึ่งคือ FailedPrecondition บน wire) — ไม่ใช่ 409 ให้ลบพรีเซ็ตออกจาก journey ก่อน

เมธอดเส้นทางคำอธิบาย
POST/api/presetsสร้าง push preset ใหม่
GET/api/presetsแสดงรายการ push presets ของแอปพลิเคชัน
GET/api/presets/{code}ดึงข้อมูล push preset รายการเดียว
PUT/api/presets/{code}อัปเดต push preset (เขียนทับทั้งหมด)
PUT/api/presets/{code}:partialอัปเดต push preset (บางส่วน)
POST/api/presets/{code}:cloneโคลน push preset
DELETE/api/presets/{code}ลบ push preset

สร้าง

Anchor link to

สร้าง push preset ใหม่ในแอปพลิเคชันและส่งคืนพร้อมกับ code ที่สร้างขึ้น

POST /api/presets

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

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
applicationstringใช่Application code ที่จะสร้างพรีเซ็ต
namestringใช่ชื่อพรีเซ็ต
sendTypestringไม่ช่องทางของพรีเซ็ต (ตัวอย่างเช่น push)
isV2booleanไม่ปักหมุดแฟล็กต้นทางของพรีเซ็ต ละเว้นเพื่อตั้งค่าเริ่มต้นเป็น true (v2); ตั้งค่าเป็น false เฉพาะเมื่อต้องการสร้างพรีเซ็ต v1 แบบดั้งเดิม

ฟิลด์อื่นๆ ทั้งหมด — เนื้อหาที่แปลเป็นภาษาท้องถิ่น, แพลตฟอร์ม, deep link, inbox, หมวดหมู่ และอื่นๆ — จะใช้ร่วมกับ Update และมีเอกสารอธิบายไว้ครั้งเดียวในการอ้างอิง Preset object ด้านล่าง

ตัวอย่างคำขอ
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "20% discount",
"platforms": { "1": true, "3": true },
"localizedContent": {
"default": "Get your 20% discount right now",
"es": "Consigue tu 20% de descuento ahora mismo"
},
"localizedTitle": { "default": "Hi there" },
"openAction": { "link": { "url": "https://example.com" } },
"categories": ["promo"]
}

การตอบกลับ

Anchor link to

ส่งคืน { "preset": { ... } } ซึ่งเป็น Preset object ที่สร้างขึ้น

รายการ

Anchor link to

แสดงรายการ push presets ของแอปพลิเคชัน — ซึ่งเป็นชุดฟิลด์ที่ลดลง ไม่ใช่อ็อบเจกต์เต็ม — พร้อมด้วยการแบ่งหน้า, การเรียงลำดับ และการกรองตามชื่อหรือหมวดหมู่

GET /api/presets

พารามิเตอร์ของ Query

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
applicationstringใช่Application code ที่จะแสดงรายการพรีเซ็ต
orderBystringไม่NAME (ค่าเริ่มต้น), CREATED หรือ UPDATED
orderDirectionstringไม่ASC (ค่าเริ่มต้น) หรือ DESC
pageintegerไม่ดัชนีหน้าแบบเริ่มต้นที่ศูนย์
perPageintegerไม่ขนาดหน้า ค่าเริ่มต้นคือ 100 เมื่อละเว้นหรือเป็น 0
searchByNamestringไม่การจับคู่สตริงย่อยแบบไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่บนชื่อหรือ code ของพรีเซ็ต (ILIKE %value%)
searchByCategoryarray of stringsไม่ใช้พารามิเตอร์ซ้ำเพื่อกรองตามหมวดหมู่หลายรายการ เช่น ?searchByCategory=promo&searchByCategory=lifecycle
showHiddenbooleanไม่รวมพรีเซ็ตที่ทำเครื่องหมายว่า hidden

การตอบกลับ

Anchor link to

แต่ละรายการมีเพียง: name, code, platforms, localized_content (ข้อความธรรมดาต่อภาษา — ไม่ใช่ localized_properties), localized_title, localized_subtitle, banner, icon, categories, journey_uuid, custom_data, is_v2, created, updated ฟิลด์อื่นๆ ทั้งหมดของ Preset objectlocalized_properties, platform_properties, deeplink, richmedia, url และอื่นๆ — จะถูกละเว้น แม้ว่าจะมีการตั้งค่าไว้ในพรีเซ็ตก็ตาม

ฟิลด์ประเภทคำอธิบาย
presetsarray of objectsหน้าปัจจุบันของพรีเซ็ต ในรูปแบบที่ลดลงตามที่อธิบายไว้ข้างต้น
pageintegerดัชนีหน้าที่ส่งคืน
per_pageintegerขนาดหน้าที่ใช้สำหรับการตอบกลับนี้
totalintegerจำนวนพรีเซ็ตทั้งหมดที่ตรงกับตัวกรอง ในทุกหน้า
ตัวอย่างการตอบกลับ
Anchor link to
{
"presets": [
{ "name": "20% discount", "code": "AAAAA-BBBBB", "platforms": { "1": true, "3": true }, "categories": ["promo"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

ดึงข้อมูล

Anchor link to

ส่งคืน push preset รายการเดียวตาม code ของมัน โดยมีทุกฟิลด์ของ Preset object ที่ระบุค่าไว้

GET /api/presets/{code}

พารามิเตอร์ของ Path

Anchor link to
พารามิเตอร์ประเภทคำอธิบาย
codestringCode ของพรีเซ็ต

การตอบกลับ

Anchor link to

ส่งคืน { "preset": { ... } } ซึ่งเป็น Preset object ฉบับเต็ม

อัปเดต

Anchor link to

เขียนทับ push preset ที่มีอยู่ตาม code ด้วยฟิลด์ที่ให้มา

PUT /api/presets/{code}

พารามิเตอร์ของ Path

Anchor link to
พารามิเตอร์ประเภทคำอธิบาย
codestringCode ของพรีเซ็ตที่จะเขียนทับ

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

Anchor link to

ฟิลด์เดียวกับ Create (ลบ application) บวกกับฟิลด์ที่เหลือของ Preset object sendType จะถูกยอมรับแต่จะถูกละเว้น — ช่องทางของพรีเซ็ตไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้าง

การตอบกลับ

Anchor link to

อ็อบเจกต์ว่างเมื่อสำเร็จ: {}

อัปเดตบางส่วน

Anchor link to

อัปเดตเฉพาะฟิลด์ที่ให้มาของ push preset ที่มีอยู่ตาม code โดยปล่อยให้ฟิลด์ที่ไม่ได้ตั้งค่าไว้ไม่เปลี่ยนแปลง

PUT /api/presets/{code}:partial

พารามิเตอร์ของ Path

Anchor link to
พารามิเตอร์ประเภทคำอธิบาย
codestringCode ของพรีเซ็ตที่จะแพตช์

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

Anchor link to

ฟิลด์เดียวกับ Update ลบ application ซึ่งแตกต่างจาก Update ทุกฟิลด์ที่นี่ — รวมถึง localizedProperties, platformProperties, categories และส่วนที่เหลือของกลุ่มคุณสมบัติเนื้อหาที่ระบุไว้ใน ข้อควรระวังของ Update — จะถูกปล่อยไว้ไม่เปลี่ยนแปลงเมื่อละเว้น และจะถูกแก้ไขเมื่อคุณส่งมันเท่านั้น (ฟิลด์ map/array ที่คุณส่งจะยังคงแทนที่ค่าที่มีอยู่สำหรับฟิลด์นั้นทั้งหมด แต่จะไม่ส่งผลกระทบต่อสิ่งที่คุณไม่ได้รวมไว้) sendType ก็จะถูกยอมรับแต่จะถูกละเว้นเช่นกัน

ตัวอย่างคำขอ
Anchor link to
{
"sendRate": 500,
"cappingCount": 3,
"cappingDays": 7
}

การตอบกลับ

Anchor link to

เป็นอ็อบเจกต์ว่างเช่นกัน — ดู ข้อควรระวังข้างต้น

โคลน

Anchor link to

ทำซ้ำ push preset ที่มีอยู่ ภายใต้ชื่อใหม่ ไปยังแอปพลิเคชันเดียวกัน

POST /api/presets/{code}:clone

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

Anchor link to
พารามิเตอร์ประเภทจำเป็นคำอธิบาย
codestringใช่Code ของพรีเซ็ตต้นทางที่จะทำซ้ำ
namestringใช่ชื่อสำหรับพรีเซ็ตใหม่
ตัวอย่างคำขอ
Anchor link to
{ "code": "AAAAA-BBBBB", "name": "20% discount (copy)" }

การตอบกลับ

Anchor link to

ส่งคืน { "preset": { ... } } ซึ่งเป็น Preset object ใหม่

ลบ push preset อย่างถาวรตาม code

DELETE /api/presets/{code}

พารามิเตอร์ของ Path

Anchor link to
พารามิเตอร์ประเภทคำอธิบาย
codestringCode ของพรีเซ็ตที่จะลบ

การตอบกลับ

Anchor link to

อ็อบเจกต์ว่างเมื่อสำเร็จ: {}

การอ้างอิงอ็อบเจกต์

Anchor link to

ชื่อฟิลด์ด้านล่างตรงกับสิ่งที่ Get, Create, Update และ Clone ส่งคืนจริง — ซึ่งคือชื่อฟิลด์ proto แบบ snake_case (ดู ข้อตกลง) รูปแบบ lowerCamelCase ที่ใช้ในตัวอย่างคำขอด้านบนทำงานในลักษณะเดียวกันสำหรับอินพุต

Preset object

Anchor link to

ข้อมูลระบุตัวตน

Anchor link to
ฟิลด์ประเภทคำอธิบาย
codestringสร้างขึ้นเมื่อ Create ใช้ระบุพรีเซ็ตนี้ในที่อื่นๆ ทั้งหมดใน API
namestringชื่อพรีเซ็ต
send_typestringช่องทางของพรีเซ็ต (ตัวอย่างเช่น push)
is_v2booleantrue สำหรับพรีเซ็ตที่สร้างหรือย้ายไปยังโมเดลเนื้อหา v2
systembooleanทำเครื่องหมายพรีเซ็ตว่าเป็นพรีเซ็ตของระบบ/ภายใน
hiddenbooleanซ่อนพรีเซ็ตจากผลลัพธ์ของ List (ส่ง showHidden: true เพื่อรวมไว้)
createdstring (RFC 3339)การประทับเวลาที่สร้าง
updatedstring (RFC 3339)การประทับเวลาที่อัปเดตล่าสุด

การกำหนดเป้าหมายและเนื้อหา

Anchor link to
ฟิลด์ประเภทคำอธิบาย
platformsmap<string, boolean>แพลตฟอร์มที่พรีเซ็ตกำหนดเป้าหมาย โดยใช้ device type code เป็นคีย์ (เช่น "1" สำหรับ iOS)
localized_propertiesmap<string, object>ภาษา → เนื้อหา rich media ต่อแพลตฟอร์ม มีรูปแบบเดียวกับ LocalizedContent บน payload ของ Notify — หนึ่งรายการต่อบล็อกแพลตฟอร์ม (ios, android และอื่นๆ) นี่เป็นวิธีหลักในการตั้งค่าเนื้อหาพุชเฉพาะแพลตฟอร์ม
localized_title / localized_subtitle / localized_contentmap<string, string>ภาษา → ข้อความธรรมดา เป็นทางเลือกที่ง่ายกว่า localized_properties สำหรับหัวข้อ, หัวข้อย่อย และเนื้อหาเมื่อคุณไม่ต้องการการแทนที่เฉพาะแพลตฟอร์ม
platform_propertiesmap<string, object>การแทนที่เฉพาะแพลตฟอร์มแบบดั้งเดิม โดยใช้ชื่อ enum ของแพลตฟอร์มเป็นคีย์ (IOS, ANDROID, HUAWEI_ANDROID, OSX) ดู PlatformProperties object ด้านล่าง
open_actionOpenActionการกระทำที่เกิดขึ้นเมื่อผู้ใช้เปิดการแจ้งเตือน ซึ่งจะใช้กับทุกแพลตฟอร์ม ไม่สามารถใช้ร่วมกับ open_actions ได้ — การตอบกลับจะตั้งค่าเพียงอย่างใดอย่างหนึ่งเท่านั้น
open_actionsmap<string, OpenAction>การแทนที่ open_action ต่อแพลตฟอร์ม โดยใช้ device type code เป็นคีย์
deeplinkstringCode ของ Deep Link
deeplink_paramsmap<string, string>พารามิเตอร์ที่ส่งไปยัง deep link
richmediastringCode ของ Rich Media ที่เปิดโดยการแจ้งเตือน
urlstringURL ที่เปิดโดยการแจ้งเตือน หากไม่ได้ใช้ deep link หรือ Rich Media

กล่องข้อความ

Anchor link to
ฟิลด์ประเภทคำอธิบาย
inbox_imagestringURL ของรูปภาพที่แสดงในรายการ Message Inbox
inbox_iconstringURL ของไอคอนที่แสดงในรายการ Message Inbox
inbox_daysintegerจำนวนวันที่รายการจะอยู่ใน Message Inbox
inbox_datestring (RFC 3339)วันหมดอายุที่ชัดเจนสำหรับรายการ Message Inbox เป็นทางเลือกแทน inbox_days

การจัดระเบียบและข้อมูลเมตา

Anchor link to
ฟิลด์ประเภทคำอธิบาย
categoriesarray of stringsชื่อหมวดหมู่ที่พรีเซ็ตถูกแท็กไว้
campaign_codestringCampaign code ที่พรีเซ็ตนี้ถูกระบุแหล่งที่มา
filter_codestringSegment / Filter code ที่พรีเซ็ตนี้กำหนดเป้าหมายโดยค่าเริ่มต้น
geo_zonesstringการกำหนดเป้าหมาย Geozone หากพรีเซ็ตถูกทริกเกอร์ตามตำแหน่งทางภูมิศาสตร์
journey_uuidstringUUID ของ Customer Journey ที่เป็นเจ้าของพรีเซ็ตนี้ หากสร้างขึ้นจาก Send push point ของ journey
custom_dataobjectJSON รูปแบบอิสระที่ส่งต่อไปยัง client SDK เป็นพารามิเตอร์ u
bannerstringURL ของรูปภาพขนาดใหญ่ / ไฟล์แนบ
iconstringURL ของไอคอนการแจ้งเตือนที่กำหนดเอง

ขีดจำกัดการส่ง

Anchor link to
ฟิลด์ประเภทคำอธิบาย
send_rateintegerการควบคุมปริมาณการส่งที่ใช้พรีเซ็ตนี้ ในหน่วยข้อความ/วินาที — เทียบเท่ากับ SendRate ของ Notify ในระดับพรีเซ็ต
capping_count / capping_daysintegerขีดจำกัดความถี่ต่อผู้ใช้สำหรับพรีเซ็ตนี้ — เทียบเท่ากับ count / days ของ FrequencyCapping ของ Notify ในระดับพรีเซ็ต
ฟิลด์ประเภทคำอธิบาย
notification_sent_urlstringURL เรียกกลับที่ร้องขอเมื่อมีการส่งการแจ้งเตือนที่ใช้พรีเซ็ตนี้
notification_delivered_urlstringURL เรียกกลับที่ร้องขอเมื่อมีการส่งมอบการแจ้งเตือนที่ใช้พรีเซ็ตนี้
notification_click_urlstringURL เรียกกลับที่ร้องขอเมื่อมีการคลิกการแจ้งเตือนที่ใช้พรีเซ็ตนี้

ฟิลด์ดั้งเดิม

Anchor link to

สิ่งเหล่านี้สืบทอดมาจากโมเดลพรีเซ็ต v1 ซึ่งจะถูกระบุค่าไว้เพื่อความเข้ากันได้กับ Control Panel มากกว่าสำหรับการผสานรวมใหม่

ฟิลด์ประเภทคำอธิบาย
remote_pagestringการอ้างอิงหน้าเว็บระยะไกลแบบดั้งเดิม
wns_contentstringJSON เทมเพลต toast ของ Windows แบบดั้งเดิม ตามที่ยอมรับโดยเมธอด createPreset/getPreset ของ v1
original_urlstringค่าของ url ก่อนการย่อ เมื่อ url ถูกแทนที่ด้วยลิงก์ที่ย่อแล้ว
ios_silent / android_silent / huawei_android_silentbooleanแฟล็กพุชแบบเงียบ (ข้อมูลเท่านั้น) ต่อแพลตฟอร์ม

PlatformProperties object

Anchor link to

ฟิลด์ที่มีในแต่ละรายการของ platform_properties (IOS, ANDROID, HUAWEI_ANDROID, OSX):

ฟิลด์ประเภทคำอธิบาย
badgestringการแทนที่จำนวน badge
soundstringชื่อไฟล์เสียง
sound_offbooleanปิดเสียงการแจ้งเตือน
prioritystringลำดับความสำคัญในถาด (Android/Huawei เท่านั้น)
delivery_prioritystringลำดับความสำคัญในการส่ง NORMAL หรือ HIGH (Android/Huawei เท่านั้น)
ios_interruption_levelstringpassive, active, time-sensitive หรือ critical (iOS เท่านั้น)

ที่เกี่ยวข้อง

Anchor link to