การรับส่งข้อความกลุ่มอุปกรณ์ช่วยให้คุณเพิ่มอุปกรณ์หลายเครื่องลงในกลุ่มเดียวได้ ซึ่งคล้ายกับการรับส่งข้อความตามหัวข้อ แต่รวมถึงการตรวจสอบสิทธิ์เพื่อให้แน่ใจว่าการเป็นสมาชิกกลุ่มได้รับการจัดการโดยเซิร์ฟเวอร์ของคุณเท่านั้น
ตัวอย่างเช่น หากต้องการส่งข้อความที่แตกต่างกันไปยังโทรศัพท์รุ่นต่างๆ เซิร์ฟเวอร์ของคุณสามารถเพิ่มหรือนำการลงทะเบียนไปยังกลุ่มที่เหมาะสม และส่งข้อความที่เหมาะสมไปยังแต่ละกลุ่มได้ การรับส่งข้อความกลุ่มอุปกรณ์แตกต่างจากการรับส่งข้อความตามหัวข้อตรงที่เกี่ยวข้องกับการจัดการกลุ่มอุปกรณ์จากเซิร์ฟเวอร์แทนที่จะจัดการภายในแอปพลิเคชันโดยตรง
จำนวนสมาชิกสูงสุดที่อนุญาตสำหรับคีย์การแจ้งเตือนคือ 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 ที่ถูกต้อง
กำลังดึงข้อมูลโทเค็น FCM รายการสำหรับกลุ่มอุปกรณ์
หากต้องการดึงข้อมูลโทเค็น FCM ที่เป็นของกลุ่มอุปกรณ์ ให้ใช้ notification_key ในคำขอ GET ดังที่แสดงต่อไปนี้
https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}
คำตอบจะมีลักษณะดังนี้
{
"notification_key_name": "appUser-Chris",
"registration_ids": ["token1", "token2"]
}
การเพิ่มและนำอุปกรณ์ออกจากกลุ่มอุปกรณ์
หากต้องการเพิ่มหรือนำอุปกรณ์ออกจากกลุ่มที่มีอยู่ ให้ส่งคำขอ POST โดยตั้งค่าพารามิเตอร์ operation เป็น add หรือ remove และระบุโทเค็นการลงทะเบียนสำหรับการเพิ่มหรือนำออก
คำขอ HTTP POST
ตัวอย่างเช่น หากต้องการเพิ่มอุปกรณ์ที่มีโทเค็นการลงทะเบียน bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... ไปยัง appUser-Chris คุณจะต้องส่งคำขอดังนี้
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": "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 จะลบกลุ่มอุปกรณ์นั้น |
ส่งข้อความไปยังกลุ่มอุปกรณ์
การส่งข้อความไปยังกลุ่มอุปกรณ์คล้ายกับการส่งข้อความไปยังอุปกรณ์แต่ละเครื่อง โดยใช้วิธีเดียวกันในการให้สิทธิ์คำขอส่ง
ตั้งค่าช่อง 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