ส่งข้อความไปยังกลุ่มอุปกรณ์บนเว็บ/JavaScript

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

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

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