ข้ามไปที่เนื้อหา

การส่งแบบเดี่ยว

ข้อกำหนดเบื้องต้น

ในการซิงค์กับ 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
    • ส่งเป็นการแจ้งเตือนเกม
    • ส่งการแจ้งเตือนโดยไม่คำนึงถึงข้อตกลงของผู้ใช้

การแจ้งเตือนและการแจ้งเตือนในเวลากลางคืนเป็นรายการที่จำเป็นต้องได้รับความเห็นชอบจากผู้ใช้

  • หากผู้ใช้ไม่เห็นด้วยที่จะรับการแจ้งเตือนประกาศ การแจ้งเตือนทั้งหมดที่ตั้งเป็นการประกาศจะถูกบล็อกไม่ให้ส่ง
  • การเห็นด้วยในการรับการแจ้งเตือนในเวลากลางคืนจะเปิดใช้งานได้ก็ต่อเมื่อเห็นด้วยในการรับการแจ้งเตือนประกาศ; มิฉะนั้น การแจ้งเตือนทั้งหมดที่ตั้งเป็นการประกาศจะถูกบล็อกไม่ให้ส่งในเวลากลางคืน เวลากลางคืนคือจาก 21:00 น. ถึง 08:00 น.

Boolean O
identifiers ข้อมูลตัวระบุ (สูงสุด 100) ตรวจสอบ โครงสร้างตัวระบุและ ตัวอย่างด้านล่าง identifier[] O
เกม gameid รหัสเกม String O
appids

รายการของ AppID ไม่มีการส่งหาก AppID ที่แมพไม่ถูกต้อง

คำแนะนำ

  • หาก ID ที่อิงจากอุปกรณ์ (did): เพิ่ม AppID ที่แมพ
  • หาก ID ที่อิงจากบัญชี (playerId, vid, uid): เพิ่มรายการของ AppIDs ที่แมพทั้งหมด
  • หาก ID หลายประเภท: อ้างอิง โครงสร้างตัวระบุเพื่อตรวจสอบลำดับความสำคัญ

String[] X
enableLocale

ว่าจะเปิดใช้งานภาษาของแต่ละภาษาหรือไม่

    true
  • ส่งข้อความในภาษาที่ผู้ใช้เป้าหมายตั้งไว้ ขึ้นอยู่กับโทเค็นและรหัสภาษาที่ตั้งไว้
  • กำหนดภาษาขณะจัดเก็บโทเค็น
  • ลำดับความสำคัญสูงสุด: ภาษาเกม
  • ลำดับความสำคัญที่สอง: ภาษาอุปกรณ์ (เว้นแต่จะส่งภาษาของเกม)
    false
  • ไม่สนใจภาษาท้องถิ่นและส่งเป็นค่าของฟิลด์เดียวใน payload

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

ตัวอย่างตัวระบุ

[
  {
    "playerId":51234,
    "vid":11232,
    "did":1234
  }
]

โครงสร้างข้อความ

หมวดหมู่ ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
ข้อความ 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.
  • NORMAL = ความสำคัญเริ่มต้นสำหรับข้อความข้อมูล ข้อความที่มีความสำคัญตามปกติจะถูกส่งทันทีเมื่ออุปกรณ์ไม่ได้อยู่ในโหมดพัก เมื่ออุปกรณ์อยู่ในโหมดพัก การส่งอาจถูกเลื่อนเพื่อประหยัดแบตเตอรี่จนกว่าอุปกรณ์จะออกจากโหมดพัก เลือกความสำคัญในการส่งแบบปกติสำหรับข้อความที่ไม่เกี่ยวข้องกับเวลา เช่น การแจ้งเตือนอีเมลใหม่ การรักษา UI ให้ซิงค์ และการซิงโครไนซ์ข้อมูลแอปพื้นหลัง.
  • HIGH = FCM พยายามส่งข้อความที่มีความสำคัญสูงทันทีและอาจปลุกอุปกรณ์จากโหมดสลีปหากจำเป็น โดยดำเนินการงานประมวลผลที่จำกัด รวมถึงการเข้าถึงเครือข่ายที่มีข้อจำกัดมาก ข้อความที่มีความสำคัญสูงมักเกี่ยวข้องกับการโต้ตอบของผู้ใช้กับแอปหรือการแจ้งเตือน。
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
  • การตอบสนอง
< HTTP/1.1 200 OK
< content-length: 0
< Content-Type: application/json
< UUID: 3bc6b414-e2df-40d6-8006-9d2308a6edf9