הודעות לקבוצת מכשירים מאפשרות לכם להוסיף כמה מכשירים לקבוצה אחת. האפשרות הזו דומה לשליחת הודעות בנושאים, אבל כוללת אימות כדי לוודא שהצטרפות לקבוצות מנוהלת רק על ידי השרתים שלכם. לדוגמה, אם אתם רוצים לשלוח הודעות שונות לדגמי טלפונים שונים, השרתים שלכם יכולים להוסיף או להסיר רישומים לקבוצות המתאימות ולשלוח את ההודעה המתאימה לכל קבוצה. שליחת הודעות לקבוצות של מכשירים שונה משליחת הודעות לנושאים, כי היא כוללת ניהול של קבוצות של מכשירים מהשרתים שלכם במקום ישירות באפליקציה.
המספר המקסימלי של חברים במפתח התראות הוא 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 תמחק את קבוצת המכשירים. |
שליחת הודעות downstream לקבוצות מכשירים
כדי לשלוח הודעות לקבוצות מכשירים צריך להשתמש ב-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
שליחת הודעות ב-upstream לקבוצות של מכשירים
אפליקציות לקוח יכולות לשלוח הודעות לקבוצות של מכשירים ב-upstream על ידי טירגוט ההודעות למפתח ההתראות המתאים בשדה to
.
הקריאה הבאה ל-FCM שולחת הודעת upstream למפתח התראות.
Firebase.Messaging.Message message; message.To = notification_key; message.MessageId = a_unique_message_id; message.Data["hello"] = "world"; Firebase.Messaging.FirebaseMessaging.Send(message);