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