שליחת הודעות לקבוצות מכשירים בפלטפורמות של Apple

צ'אט קבוצתי מאפשר להוסיף כמה מכשירים לקבוצה אחת. ההודעה הזו דומה להודעות בנושא מסוים, אבל כוללת אימות כדי לוודא החברות בקבוצה מנוהלת רק על ידי השרתים שלך. לדוגמה, אם רוצים לשלוח הודעות שונות לדגמי טלפון שונים, השרתים שלך יכולים להוסיף/להסיר נרשמים לקבוצות המתאימות ושולחים את ההודעה המתאימה לכל קבוצה קבוצה. העברת הודעות בין קבוצות מכשירים שונה מהעברת הודעות לפי נושא, בכך שהיא קשורה לנהל קבוצות מכשירים מהשרתים שלכם במקום ישירות תרגום מכונה.

המספר המקסימלי של חברים במפתח התראות הוא 20.

ניהול קבוצות מכשירים

כדי לשלוח הודעות לקבוצת מכשירים, צריך:

  1. מקבלים אסימוני רישום לכל מכשיר שרוצים להוסיף לקבוצה.

  2. יוצרים את notification_key, שמזהה את קבוצת המכשירים על ידי מיפוי של קבוצה מסוימת (בדרך כלל משתמש) לכל אסימוני ההרשמה המשויכים לקבוצה. אפשר ליצור מפתחות התראות בשרת האפליקציה.

ניהול בסיסי של קבוצות מכשירים – יצירה והסרה של קבוצות, והוספה או הסרה של מכשירים — מבוצעות באמצעות ה-API של HTTP v1, באמצעות אסימונים לטווח קצר לאשר בקשות שליחה. ראו מפתחות לניהול של קבוצות מכשירים, לרשימה של המפתחות הנתמכים.

ניהול של קבוצות מכשירים בשרת האפליקציות

יצירה של קבוצת מכשירים

כדי ליצור קבוצת מכשירים, צריך לשלוח בקשת 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"
}

מפתחות לניהול של קבוצות מכשירים

בטבלה הבאה מפורטים המפתחות ליצירת קבוצות מכשירים ולהוסיף ולהסיר חברים.

טבלה 10. מפתחות לניהול של קבוצות מכשירים.

פרמטר שימוש תיאור
operation שדה חובה, מחרוזת הפעולה שיש להריץ.הערכים החוקיים הם create, add ו-remove.
notification_key_name שדה חובה, מחרוזת השם שהוגדר על ידי המשתמש של קבוצת המכשירים ליצירה או לשינוי.
notification_key חובה (למעט פעולה create, מחרוזת) המזהה הייחודי של קבוצת המכשירים. הערך הזה מוחזר בתגובה עבור ערך create מוצלח והוא שנדרשת לכל הפעולות הבאות בקבוצת המכשירים.
registration_ids נדרש, מערך מחרוזות אסימוני המכשיר להוספה או להסרה. אם מסירים את כל אסימוני רישום מקבוצת מכשירים, FCM מוחק את קבוצת המכשירים.

שליחת הודעות לקבוצות מכשירים

כדי לשלוח הודעות לקבוצות של מכשירים, משתמשים ב-HTTP v1 API. אם אתם נמצאים כרגע שולחת לקבוצות מכשירים באמצעות ממשקי ה-API הקודמים לשליחת הודעות שהוצאו משימוש עבור או 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 לקבוצות מכשירים באפליקציות של Apple, צריך להוריד את הלקוח של Apple צריך להטמיע את האפליקציה FIRMessaging.sendMessage:

(void)sendMessage:(nonnull NSDictionary *)message
     to:(nonnull NSString *)receiver
withMessageID:(nonnull NSString *)messageID
timeToLive:(int64_t)ttl;