การส่งแบบเดี่ยว
ข้อกำหนดเบื้องต้น¶
ในการซิงค์กับ Single Push API ให้แน่ใจว่าคุณได้ออกโทเค็นการอนุญาต (API KEY) หากคุณมีคีย์แล้ว ให้ขอสิทธิ์เพิ่มเติม ดูที่ Hive Server API > Notification > Push v4 > Authentication เพื่อตรวจสอบวิธีการขอและออกโทเค็นการอนุญาต
Note
Single Puch API เป็นแบบอะซิงโครนัสและประมวลผลตามลำดับ, API Request > Token Lookup > Send.
API Request: ตรวจสอบข้อมูลการร้องขอและส่งคืนรหัสการตอบสนองต่อการร้องขอ Token Lookup: ค้นหาท็อกเกนการส่งข้อมูลไปยังข้อมูลการร้องขอ อาจมีสถานการณ์ที่ไม่มีท็อกเกน Send: ส่งข้อมูลไปยังเซิร์ฟเวอร์การส่งข้อมูลของแต่ละตลาด (เช่น ADM, APNS, FCM) การตอบสนองที่ได้รับจากตลาดจะแสดงผลลัพธ์การประมวลผล เมื่อการประมวลผลล้มเหลวในขั้นตอนการค้นหาท็อกเกนและการส่ง จะไม่มีการส่งการตอบสนองไปยังลูกค้าที่เรียกเซิร์ฟเวอร์การส่งข้อมูล หากคุณไม่ได้รับการส่งข้อมูลภายใน 10 นาทีหลังจากที่คุณส่งข้อมูล โปรดติดต่อทีม Solution Architect, Com2uS Platform.
URL¶
เซิร์ฟเวอร์ | URL |
---|---|
การผลิต | https://notification.withhive.com |
แซนด์บ็อกซ์ | https://sandbox-notification.withhive.com |
ข้อมูลพื้นฐานและตัวแปรคำขอ¶
วิธีการ | POST | ||||
---|---|---|---|---|---|
URL | /push/send | ||||
แผนก | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | |
Header | Content-Type | application/json;charset=utf-8 | |||
Authorization | bearer {{API KEY}} | ||||
Body | notice | ว่าจะส่งการแจ้งเตือนประกาศหรือไม่ (ค่าเริ่มต้น: 'false')
true false การแจ้งเตือนและการแจ้งเตือนในเวลากลางคืนเป็นรายการที่จำเป็นต้องได้รับความเห็นชอบจากผู้ใช้
| Boolean | O | |
identifiers | ข้อมูลตัวระบุ (สูงสุด 100) ตรวจสอบ โครงสร้างตัวระบุและ ตัวอย่างด้านล่าง | identifier[] | O | ||
เกม | gameid | รหัสเกม | String | O | |
appids | รายการของ AppID ไม่มีการส่งหาก AppID ที่แมพไม่ถูกต้อง คำแนะนำ
| String[] | X | ||
enableLocale | ว่าจะเปิดใช้งานภาษาของแต่ละภาษาหรือไม่
true
false | Boolean | O | ||
payload | single | คำขอไปยังฟิลด์เดียวหาก enableLocale=false ตรวจสอบ โครงสร้างข้อความด้านล่าง | ข้อความ | O | |
defaultLanguage | ตั้งค่าด้วยค่าของภาษาที่ตั้งเป็นค่าเริ่มต้นหาก enableLocale=true . | String | |||
locale {{LANGUAGE}} | ตั้งค่าด้วยค่าของฟิลด์ locale หาก enableLocale=true ข้อมูลเดียวกันกับข้อมูลข้อความของฟิลด์เดียว | ข้อความ | |||
option | โปรดดูที่ ข้อมูลเพิ่มเติม ด้านล่างนี้. | ตัวเลือก | X |
Note
- สำหรับการรับการส่งข้อมูลแบบเดี่ยวที่เหมาะสม แนะนำให้ป้อนข้อมูลเพียงหนึ่งรายการสำหรับฟิลด์ appids และ identifiers เท่านั้น
- เนื่องจากไม่สามารถกำหนดเงื่อนไขการค้นหาได้ การส่งข้อมูลแบบพุชอาจล่าช้า หากคำขอมีหลาย identifiers และ appids
- แนะนำให้กำหนดค่าที่มีความสำคัญสูงสำหรับค่าตัวระบุ และหลีกเลี่ยงการกำหนดค่าตัวระบุเฉพาะด้วยค่า did เท่านั้น
- คำขอที่ระบุเฉพาะ gameid ในฟิลด์เกมต้องหลีกเลี่ยง
- การส่งข้อมูลแบบพุชอาจล่าช้า หากไม่มีข้อมูลในฟิลด์ appids เนื่องจาก appids ทั้งหมดที่รวมอยู่ใน gameid จะถูกค้นหา
โครงสร้างตัวระบุ¶
Division | Field Name | Description | Type | Required | |
---|---|---|---|---|---|
identifier | identifier | playerId | ต้องรวมหนึ่งในสี่ตัวระบุ โดยให้ความสำคัญกับ playerId, vid, uid และ did ตามลำดับ | Long | O |
vid | |||||
uid | |||||
did |
ตัวอย่างตัวระบุ¶
โครงสร้างข้อความ¶
หมวดหมู่ | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | |
---|---|---|---|---|---|
ข้อความ | android | title | ชื่อเรื่อง | String | O |
message | เนื้อหา | String | O | ||
messageExpanded | เนื้อหาขยาย | String | O | ||
imageUrl | URL รูปภาพ | String | X | ||
ticker | ตัวบอกสถานะ | String | X | ||
summaryText | ข้อความสรุป | String | X | ||
ios | title | ชื่อเรื่อง | String | O | |
message | เนื้อหา | String | O | ||
mediaUrl | URL รูปภาพ | String | X |
ข้อมูลตัวเลือก¶
หมวดหมู่ | ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | |
---|---|---|---|---|---|
ตัวเลือก | badge | ค่าตัวเลขที่แสดงบนไอคอนแอปเมื่อได้รับการแจ้งเตือน (ค่าเริ่มต้น: 1) | จำนวนเต็ม | X | |
overwrite | ว่าจะใช้ฟีเจอร์การเขียนทับการแจ้งเตือนบน Android หรือไม่ (ค่าเริ่มต้น: false) | Boolean | X | ||
collapseKey | ค่าคีย์ (รูปแบบสตริงของตัวเลข: "123") ที่ใช้เมื่อเปิดใช้งานฟีเจอร์การเขียนทับการแจ้งเตือน | สตริง | X | ||
engagement | การมีส่วนร่วมของผู้ใช้ | สตริง | X | ||
comment | ข้อความ | สตริง | X | ||
groupKey | นี่คือค่ากุญแจกลุ่มที่ใช้ในการจัดกลุ่มการแจ้งเตือนเมื่อได้รับบนอุปกรณ์ iOS และ Android ตัวเลือกการแจ้งเตือนที่ตั้งไว้ในระบบปฏิบัติการของอุปกรณ์จะถูกนำไปใช้โดยอัตโนมัติ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือก โปรดดูเอกสารด้านล่าง | String | X | ||
android | icon | ชื่อไฟล์ของภาพไอคอนที่ปรากฏเมื่อได้รับการแจ้งเตือนแบบพุชบนอุปกรณ์ของผู้ใช้ ไฟล์ภาพต้องมีอยู่ใน /src/main/res/drawable รูปแบบไฟล์ภาพที่รองรับสามารถดูได้ ที่นี่. ถ้าคุณต้องการแสดงภาพจากเว็บ ให้ใส่ URL ของภาพในฟิลด์นี้แทนชื่อไฟล์ ถ้าฟิลด์นี้ว่าง ไอคอนแอปจะถูกแสดง | String | X | |
sound | ชื่อไฟล์ของเสียงการแจ้งเตือนที่จะเล่นเมื่อได้รับการแจ้งเตือนแบบพุชบนอุปกรณ์ของผู้ใช้ คุณสามารถระบุไฟล์เสียงที่รวมอยู่ในแอปบันเดิล และไฟล์เสียงต้องมีอยู่ใน /src/main/res/raw ถ้าฟิลด์นี้ว่าง เสียงเริ่มต้นของระบบจะถูกใช้ | String | X | ||
priority | ความสำคัญของข้อความที่ถูกส่งไปยังอุปกรณ์ Android ความสำคัญนี้ควบคุมเวลาการส่งข้อความ ซึ่งเป็นแนวคิดจาก FCM มันสามารถมีค่าเป็น NORMAL หรือ HIGH โดยค่าเริ่มต้นคือ NORMAL สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ คู่มือ Firebase.
| enum(NORMAL, HIGH) | X | ||
ios | เสียง | ชื่อไฟล์ของเสียงการแจ้งเตือนที่จะเล่นเมื่อมีการรับการแจ้งเตือนแบบพุชบนอุปกรณ์ของผู้ใช้ ไฟล์เสียงต้องมีอยู่ใน Library/Sounds ของคอนเทนเนอร์แอปหรือในแพ็คเกจแอปหลัก หากฟิลด์นี้ว่างเปล่า จะถูกตั้งค่าเป็น "default" โดยอัตโนมัติ โดยใช้ เสียงเริ่มต้นของระบบ บนอุปกรณ์ Apple ของผู้ใช้。 | String | X |
ผลลัพธ์¶
แบ่ง | ชื่อฟิลด์ | คำอธิบาย |
---|---|---|
หัวข้อ | Content-Type | application/json;charset=utf-8 |
UUID | {{UUID}} | |
เนื้อหา | - | เนื้อหาว่างเปล่าหากสำเร็จ |
รหัสสถานะการตอบกลับ¶
คีย์ | ค่า | คำอธิบาย |
---|---|---|
200 | สำเร็จ | (เนื้อหาว่างเปล่า) |
400 | คำขอไม่ถูกต้อง | ข้อมูล POST หายไป. ข้อผิดพลาดรูปแบบ JSON องค์ประกอบที่จำเป็นหายไปหรือไม่ถูกต้อง. |
401 | ไม่ได้รับอนุญาต | หัวข้อการอนุญาตในข้อความคำขอหายไปหรือไม่ถูกต้อง. คีย์การอนุญาต (API KEY) ยังไม่ได้ลงทะเบียน. ไม่มีสิทธิ์เข้าถึง API ที่เกี่ยวข้อง |
403 | ห้ามเข้าถึง | รูปแบบการตรวจสอบสิทธิ์ของหัวข้อการอนุญาตไม่ใช่ "Bearer". (รองรับ Bearer เท่านั้น) |
404 | ไม่พบ | URL คำขอผิดพลาด. |
500 | ข้อผิดพลาดภายในเซิร์ฟเวอร์ | ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
502 | เกตเวย์ไม่ถูกต้อง | เซิร์ฟเวอร์เกตเวย์ถูกโหลดมากเกินไป. การเชื่อมต่อเครือข่ายผิดพลาด. |
503 | บริการไม่พร้อมใช้งาน | เซิร์ฟเวอร์ API หรือเซิร์ฟเวอร์การตรวจสอบสิทธิ์หยุดทำงาน. |
ตัวอย่างโค้ด¶
-
เรียก ("enableLocale":false)
curl -L -v > -d '{"notice":false,"identifiers":[{"vid":19239,"did":300010915}],"game":{"gameid":"com.com2us.hivesdk","appids":["com.com2us.hivesdk.normal.freefull.google.global.android.common"]},"enableLocale":false,"payload":{"single":{"android":{"title":"TEST","message":"TEST","messageExpanded":"","imageUrl":"","ticker":"","summaryText":""},"ios":{"title":"","message":"","mediaUrl":""}},"option":{"badge":"1","overwrite":false,"collapseKey":"","engagement":"","groupKey": "", "android":{"icon":"","sound":"", "priority": "normal"},"ios":{"sound":""}}}}' > -H "Content-Type: application/json" > -H "Authorization: Bearer {API KEY}" > https://sandbox-notification.qpyou.cn/push/send
-
เรียก ("enableLocale":true)
{ "notice": false, "identifiers": [ { "playerId": 30000028045 } ], "game": { "gameid": "com.com2us.hivesdk", "appids": [ "com.com2us.hivesdk.normal.freefull.google.global.android.common", "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal" ] }, "enableLocale": true, "payload": { "defaultLanguage": "en", "locale": { "ko": { "android": { "title": "test_Korean_title", "message": "test_Korean_message" }, "ios": { "title": "test_Korean_title", "message": "test_Korean_message" }, }, "en": { "android": { "title": "test_English title", "message": "test_English message" }, "ios": { "title": "test_English title", "message": "test_English message" }, } }, "option": { "badge": 1, "overwrite": true, "collapseKey": "99", "groupKey": "", "android": { "icon": "GoogleIcon", "sound": "GoogleSound", "priority": "normal" }, "ios": { "sound": "AppleSound" } } } }
Note
แนะนำให้ ส่งข้อมูลการโทรในแถวโดยไม่มีช่องว่าง เพื่อให้เซิร์ฟเวอร์ตรวจสอบบันทึกได้ทันที.
คำขอ
> POST /push/send HTTP/1.1
> User-Agent: curl/7.29.0
> Host: sandbox-notification.qpyou.cn
> Accept: */*
> Content-Type: application/json
> Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NDE1NzMyOTcsImp0aSI6ImFkbWluaXN0cmF0b3IifQ.23nG9RnbuOwnMbRSebBi2i-Qt_fOfqU_vUKUZ2JJlWU
> Content-Length: 502
- การตอบสนอง