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

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

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

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

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

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

การจัดการกลุ่มอุปกรณ์ขั้นพื้นฐาน ซึ่งได้แก่ การสร้างและนำกลุ่มออก รวมถึงการเพิ่มหรือนำอุปกรณ์ออก จะดำเนินการโดยใช้ 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 คุณจะต้อง ส่งคำขอนี้

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": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
รูปแบบการตอบกลับ

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

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

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

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

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

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

การส่งข้อความไปยังกลุ่มอุปกรณ์จะคล้ายกับการส่งข้อความไปยังอุปกรณ์แต่ละเครื่องเป็นอย่างมาก โดยใช้วิธีเดียวกันในการให้สิทธิ์คำขอส่ง ตั้งค่าฟิลด์ 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