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

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

จำนวนสมาชิกสูงสุดที่อนุญาตสำหรับคีย์การแจ้งเตือนคือ 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 คุณจะต้องส่งคําขอนี้

{
   "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