ส่งข้อความไปยังกลุ่มอุปกรณ์ใน Unity

การรับส่งข้อความกลุ่มของอุปกรณ์ช่วยให้คุณเพิ่มอุปกรณ์หลายเครื่องลงในกลุ่มเดียวได้ ซึ่งคล้ายกับการรับส่งข้อความตามหัวข้อ แต่จะมีการตรวจสอบสิทธิ์เพื่อให้มั่นใจว่า การเป็นสมาชิกกลุ่มได้รับการจัดการโดยเซิร์ฟเวอร์ของคุณเท่านั้น ตัวอย่างเช่น หากต้องการส่งข้อความที่แตกต่างกันไปยังโทรศัพท์รุ่นต่างๆ เซิร์ฟเวอร์จะเพิ่ม/นำการลงทะเบียนออกจากกลุ่มที่เหมาะสมและส่งข้อความที่เหมาะสมไปยังแต่ละกลุ่มได้ การรับส่งข้อความกลุ่มอุปกรณ์แตกต่างจากการรับส่งข้อความตามหัวข้อตรงที่การรับส่งข้อความกลุ่มอุปกรณ์เกี่ยวข้องกับการจัดการกลุ่มอุปกรณ์จากเซิร์ฟเวอร์แทนที่จะจัดการภายในแอปพลิเคชันโดยตรง

จำนวนสมาชิกสูงสุดที่อนุญาตสำหรับคีย์การแจ้งเตือนคือ 20 คน

การจัดการกลุ่มอุปกรณ์

ก่อนที่จะส่งข้อความไปยังกลุ่มอุปกรณ์ คุณต้องดำเนินการดังนี้

  1. รับโทเค็นการลงทะเบียนสำหรับอุปกรณ์แต่ละเครื่องที่ต้องการเพิ่มลงในกลุ่ม

  2. สร้าง notification_key ซึ่งระบุ กลุ่มอุปกรณ์ได้ด้วยการจับคู่กลุ่มที่เจาะจง (โดยทั่วไปจะเป็น user) กับโทเค็นการลงทะเบียนที่เกี่ยวข้องทั้งหมดของกลุ่ม คุณสร้างคีย์การแจ้งเตือนในเซิร์ฟเวอร์ของแอปได้

การจัดการกลุ่มอุปกรณ์ขั้นพื้นฐาน เช่น การสร้างและนำกลุ่มออก และการเพิ่มหรือนำอุปกรณ์ออกจะดำเนินการผ่าน HTTP v1 API การใช้โทเค็นที่มีอายุสั้นเพื่อ ให้สิทธิ์ส่งคำขอ โปรดดู คีย์การจัดการกลุ่มอุปกรณ์สำหรับรายการคีย์ที่รองรับ

การจัดการกลุ่มอุปกรณ์บนเซิร์ฟเวอร์แอป

การสร้างกลุ่มอุปกรณ์

หากต้องการสร้างกลุ่มอุปกรณ์ ให้ส่งคำขอ POST ที่มีชื่อ สำหรับกลุ่ม และรายการโทเค็นการลงทะเบียนสำหรับอุปกรณ์ FCM แสดงผล notification_key ใหม่ ที่แสดงถึงกลุ่มอุปกรณ์

คำขอ HTTP POST

ส่งคําขอดังต่อไปนี้ถึง https://fcm.googleapis.com/fcm/notification

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]

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

รูปแบบคำตอบ

คำขอที่สำเร็จแสดงผลเป็นการกดชอบ notification_key ดังต่อไปนี้

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

บันทึก notification_key และ notification_key_name เพื่อใช้ในการดำเนินการครั้งต่อๆ ไป

กำลังเรียกคีย์การแจ้งเตือน

หากคุณต้องการเรียกคีย์การแจ้งเตือนที่มีอยู่ ให้ใช้ notification_key_name ในคำขอ GET ดังที่แสดงด้านล่างนี้

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}

สำหรับคำขอ GET แต่ละรายการสำหรับชื่อคีย์การแจ้งเตือนหนึ่งๆ เซิร์ฟเวอร์ จะแสดงผลสตริงที่เข้ารหัสที่ไม่ซ้ำ แม้ว่าสตริงแต่ละรายการอาจดูเหมือนเป็นคีย์ที่แตกต่างกัน แต่จริงๆ แล้วคือค่า `notification_key` ที่ถูกต้อง

การเพิ่มและการนำอุปกรณ์ออกจากกลุ่มอุปกรณ์

หากต้องการเพิ่มหรือนำอุปกรณ์ออกจากกลุ่มที่มีอยู่ ให้ส่ง POST คำขอที่มีการตั้งค่าพารามิเตอร์ operation เป็น add หรือ remove และระบุ โทเค็นการลงทะเบียนสำหรับเพิ่มหรือนำออก

คำขอ HTTP POST

เช่น หากต้องการเพิ่ม อุปกรณ์ที่มีโทเค็นการลงทะเบียน bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... ถึง appUser-Chris คุณจะต้องส่งคำขอนี้

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

รูปแบบคำตอบ

คำขอเพิ่มหรือนำอุปกรณ์ออกที่ดำเนินการสำเร็จจะแสดงnotification_keyดังต่อไปนี้

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

คีย์การจัดการกลุ่มอุปกรณ์

ตารางต่อไปนี้แสดงคีย์สำหรับการสร้างกลุ่มอุปกรณ์ ตลอดจนการเพิ่มและนำสมาชิกออก

ตารางที่ 10 คีย์การจัดการกลุ่มอุปกรณ์

พารามิเตอร์ การใช้งาน คำอธิบาย
operation ต้องระบุ, สตริง การดำเนินการที่จะเรียกใช้ ค่าที่ใช้ได้คือ create, add และ remove
notification_key_name ต้องระบุ สตริง ชื่อที่ผู้ใช้กำหนดของกลุ่มอุปกรณ์ที่จะสร้างหรือแก้ไข
notification_key ต้องระบุ (ยกเว้นการดำเนินการ create, สตริง ตัวระบุที่ไม่ซ้ำกันของกลุ่มอุปกรณ์ ค่านี้ แสดงผลในการตอบกลับสำหรับ create ที่สำเร็จ และเป็น ซึ่งจำเป็นสำหรับการดำเนินการครั้งต่อๆ ไปทั้งหมดในกลุ่มอุปกรณ์
registration_ids ต้องระบุ อาร์เรย์ของสตริง โทเค็นอุปกรณ์ที่จะเพิ่มหรือนำออก หากคุณนำรายการที่มีอยู่ออกทั้งหมด โทเค็นการลงทะเบียนจากกลุ่มอุปกรณ์ FCM จะลบกลุ่มอุปกรณ์

การส่งข้อความดาวน์สตรีมไปยังกลุ่มอุปกรณ์

หากต้องการส่งข้อความไปยังกลุ่มอุปกรณ์ ให้ใช้ HTTP v1 API หากขณะนี้คุณ การส่งไปยังกลุ่มอุปกรณ์โดยใช้ API การส่งแบบเดิมที่เลิกใช้งานแล้วสำหรับ HTTP หรือ XMPP หรือเวอร์ชันที่เก่ากว่าของ Firebase Admin SDK สำหรับ Node.js เมื่อพิจารณาโปรโตคอลเดิม เราขอแนะนำให้คุณ ย้ายข้อมูลไปยัง HTTP v1 API โดยเร็วที่สุด API การส่งแบบเดิม จะถูกปิดใช้และนําออกในเดือนมิถุนายน 2024

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

REST

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
   "message":{
      "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
      "data":{
        "hello": "This is a Firebase Cloud Messaging device group message!"
      }
   }
}

คำสั่ง cURL

curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
   "data":{
     "hello": "This is a Firebase Cloud Messaging device group message!"
   },
   "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send

การส่งข้อความขาขึ้นไปยังกลุ่มอุปกรณ์

แอปไคลเอ็นต์จะส่งข้อความอัปสตรีมไปยังกลุ่มอุปกรณ์ได้โดยทำดังนี้ ข้อความที่กำหนดเป้าหมายไปยังคีย์การแจ้งเตือนที่เหมาะสมใน to

การเรียกใช้ FCM ต่อไปนี้จะส่งข้อความขาขึ้นไปยังคีย์การแจ้งเตือน

Firebase.Messaging.Message message;
message.To = notification_key;
message.MessageId = a_unique_message_id;
message.Data["hello"] = "world";
Firebase.Messaging.FirebaseMessaging.Send(message);