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

รูปแบบการตอบสนอง

คำขอที่สำเร็จจะส่งคืน 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 , string ตัวระบุเฉพาะของกลุ่มอุปกรณ์ ค่านี้จะถูกส่งกลับในการตอบสนองสำหรับการดำเนิน create ที่สำเร็จ และจำเป็นสำหรับการดำเนินการที่ตามมาทั้งหมดในกลุ่มอุปกรณ์
registration_ids จำเป็น อาร์เรย์ของสตริง โทเค็นอุปกรณ์ที่จะเพิ่มหรือลบ หากคุณลบโทเค็นการลงทะเบียนที่มีอยู่ทั้งหมดออกจากกลุ่มอุปกรณ์ FCM จะลบกลุ่มอุปกรณ์นั้น

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

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

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

พักผ่อน

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