การรับส่งข้อความกลุ่มอุปกรณ์ช่วยให้คุณเพิ่มอุปกรณ์หลายเครื่องลงในกลุ่มเดียวได้ ซึ่งคล้ายกับการรับส่งข้อความตามหัวข้อ แต่จะรวมถึงการตรวจสอบสิทธิ์เพื่อให้มั่นใจว่ามีเพียงเซิร์ฟเวอร์ของคุณเท่านั้นที่จะจัดการการเป็นสมาชิกกลุ่มได้ เช่น หากคุณต้องการส่งข้อความที่แตกต่างกันไปยังโทรศัพท์รุ่นต่างๆ เซิร์ฟเวอร์ของคุณจะเพิ่ม/นำการลงทะเบียนออกในกลุ่มที่เหมาะสมและส่งข้อความที่เหมาะสมไปยังแต่ละกลุ่มได้ การรับส่งข้อความกลุ่มอุปกรณ์แตกต่างจากการรับส่งข้อความตามหัวข้อตรงที่จะเกี่ยวข้องกับการจัดการกลุ่มอุปกรณ์จากเซิร์ฟเวอร์ของคุณแทนที่จะดำเนินการจากแอปพลิเคชันโดยตรง
จำนวนสมาชิกสูงสุดที่อนุญาตสำหรับคีย์การแจ้งเตือนคือ 20 คน
การจัดการกลุ่มอุปกรณ์
ก่อนที่จะส่งข้อความไปยังกลุ่มอุปกรณ์ คุณต้องดำเนินการดังนี้
-
รับโทเค็นการลงทะเบียนสำหรับอุปกรณ์แต่ละเครื่องที่ต้องการเพิ่มลงในกลุ่ม
-
สร้าง
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" }
คีย์การจัดการกลุ่มอุปกรณ์
ตารางต่อไปนี้แสดงรายการคีย์สำหรับการสร้างกลุ่มอุปกรณ์ รวมถึงการเพิ่มและนำสมาชิกออก
พารามิเตอร์ | การใช้งาน | คำอธิบาย |
---|---|---|
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
การส่งข้อความอัปสตรีมไปยังกลุ่มอุปกรณ์
หากต้องการส่งข้อความอัปสตรีมไปยังกลุ่มอุปกรณ์ในแอป Apple แอปไคลเอ็นต์ของ Apple ต้องใช้ FIRMessaging.sendMessage ด้วย
(void)sendMessage:(nonnull NSDictionary *)message to:(nonnull NSString *)receiver withMessageID:(nonnull NSString *)messageID timeToLive:(int64_t)ttl;