משאב: הודעה
הודעה לשלוח על ידי Firebase Cloud Messaging Service.
ייצוג JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
שדות | |
---|---|
name | פלט בלבד. מזהה ההודעה שנשלחה, בפורמט |
data | קלט בלבד. עומס מפתח/ערך שרירותי, אשר חייב להיות מקודד UTF-8. המפתח לא צריך להיות מילה שמורה ("from", "message_type", או כל מילה שמתחילה ב-"google" או "gcm"). בעת שליחת מטענים המכילים רק שדות נתונים למכשירי iOS, רק עדיפות רגילה ( אובייקט המכיל רשימה של |
notification | קלט בלבד. תבנית הודעות בסיסית לשימוש בכל הפלטפורמות. |
android | קלט בלבד. אפשרויות ספציפיות לאנדרואיד עבור הודעות שנשלחות דרך שרת החיבור של FCM . |
webpush | קלט בלבד. אפשרויות פרוטוקול Webpush . |
apns | קלט בלבד. אפשרויות ספציפיות של Apple Push Notification Service . |
fcm_options | קלט בלבד. תבנית עבור אפשרויות תכונה של FCM SDK לשימוש בכל הפלטפורמות. |
target שדה האיחוד. נדרש. קלט בלבד. יעד לשלוח אליו הודעה. target יכול להיות רק אחד מהבאים: | |
token | אסימון רישום לשלוח אליו הודעה. |
topic | שם הנושא לשלוח אליו הודעה, למשל "מזג אוויר". הערה: אין לספק את הקידומת "/topics/". |
condition | תנאי לשלוח אליו הודעה, למשל "'foo' בנושאים && 'סרגל' בנושאים". |
הוֹדָעָה
תבנית הודעות בסיסית לשימוש בכל הפלטפורמות.
ייצוג JSON |
---|
{ "title": string, "body": string, "image": string } |
שדות | |
---|---|
title | כותרת ההודעה. |
body | גוף ההודעה. |
image | מכיל את כתובת האתר של תמונה שעומדת להוריד במכשיר ולהציג בהתראה. ל-JPEG, PNG, BMP יש תמיכה מלאה בכל הפלטפורמות. GIF מונפש ווידאו עובדים רק ב-iOS. ל-WebP ול-HEIF יש רמות שונות של תמיכה בין פלטפורמות וגרסאות פלטפורמה. לאנדרואיד יש מגבלת גודל תמונה של 1MB. שימוש במכסה והשלכות/עלויות עבור תמונת אירוח ב-Firebase Storage: https://firebase.google.com/pricing |
AndroidConfig
אפשרויות ספציפיות לאנדרואיד עבור הודעות שנשלחות דרך שרת החיבור של FCM .
ייצוג JSON |
---|
{ "collapse_key": string, "priority": enum ( |
שדות | |
---|---|
collapse_key | מזהה של קבוצת הודעות שניתן לכווץ, כך שרק ההודעה האחרונה נשלחת כאשר ניתן לחדש את המסירה. מותר לכל היותר 4 מפתחות כיווץ שונים בכל זמן נתון. |
priority | עדיפות הודעה. יכול לקחת ערכים "רגילים" ו"גבוהים". למידע נוסף, ראה הגדרת עדיפות של הודעה . |
ttl | כמה זמן (בשניות) יש לשמור את ההודעה באחסון FCM אם המכשיר לא מקוון. הזמן המקסימלי לחיות נתמך הוא 4 שבועות, וערך ברירת המחדל הוא 4 שבועות אם לא הוגדר. הגדר אותו ל-0 אם אתה רוצה לשלוח את ההודעה מיד. בפורמט JSON, סוג Duration מקודד כמחרוזת ולא כאובייקט, כאשר המחרוזת מסתיימת בסיומת "s" (המציינת שניות) וקודמתה למספר השניות, כאשר ננו-שניות מבוטאות כשבריר שניות. לדוגמה, 3 שניות עם 0 ננו-שניות צריכות להיות מקודדות בפורמט JSON כ-"3s", בעוד ש-3 שניות וננו-שנייה אחת צריכות לבוא לידי ביטוי בפורמט JSON כ-"3.000000001s". ה-ttl יעוגל כלפי מטה לשניה הקרובה ביותר. משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' |
restricted_package_name | שם החבילה של האפליקציה שבה אסימון הרישום חייב להתאים כדי לקבל את ההודעה. |
data | מטען מפתח/ערך שרירותי. אם קיים, הוא יעקוף את אובייקט המכיל רשימה של |
notification | הודעה לשלוח למכשירי אנדרואיד. |
fcm_options | אפשרויות לתכונות הניתנות על ידי FCM SDK עבור אנדרואיד. |
direct_boot_ok | אם מוגדר כ-true, הודעות יורשו להישלח לאפליקציה כשהמכשיר נמצא במצב אתחול ישיר. ראה תמיכה במצב אתחול ישיר . |
AndroidMessagePriority
עדיפות של הודעה לשליחה למכשירי אנדרואיד. שימו לב שהעדיפות הזו היא קונספט של FCM השולט במועד מסירת ההודעה. ראה מדריכי FCM . בנוסף, תוכל לקבוע עדיפות להצגת התראות במכשירי Android ממוקדים באמצעות AndroidNotification.NotificationPriority .
תקצירים | |
---|---|
NORMAL | עדיפות ברירת מחדל עבור הודעות נתונים. הודעות עדיפות רגילות לא יפתחו חיבורי רשת במכשיר שינה, והמשלוח שלהן עשוי להתעכב כדי לחסוך בסוללה. להודעות פחות רגישות לזמן, כגון התראות על אימייל חדש או נתונים אחרים לסנכרון, בחר בעדיפות מסירה רגילה. |
HIGH | עדיפות ברירת מחדל עבור הודעות התראה. FCM מנסה להעביר הודעות בעדיפות גבוהה באופן מיידי, מה שמאפשר לשירות FCM להעיר מכשיר שינה במידת האפשר ולפתוח חיבור רשת לשרת האפליקציה שלך. אפליקציות עם התראות מיידיות, צ'אט או שיחות קוליות, למשל, צריכות בדרך כלל לפתוח חיבור לרשת ולוודא ש-FCM מעביר את ההודעה למכשיר ללא דיחוי. הגדר עדיפות גבוהה אם ההודעה היא קריטית לזמן ודורשת אינטראקציה מיידית של המשתמש, אך היזהר שהגדרת ההודעות שלך בעדיפות גבוהה תורמת יותר לריקון הסוללה בהשוואה להודעות עדיפות רגילות. |
AndroidNotification
הודעה לשלוח למכשירי אנדרואיד.
ייצוג JSON |
---|
{ "title": string, "body": string, "icon": string, "color": string, "sound": string, "tag": string, "click_action": string, "body_loc_key": string, "body_loc_args": [ string ], "title_loc_key": string, "title_loc_args": [ string ], "channel_id": string, "ticker": string, "sticky": boolean, "event_time": string, "local_only": boolean, "notification_priority": enum ( |
שדות | |
---|---|
title | כותרת ההודעה. אם קיים, הוא יעקוף את |
body | גוף ההודעה. אם קיים, הוא יעקוף את |
icon | סמל ההודעה. מגדיר את סמל ההתראה ל-myicon עבור myicon של משאבים שניתן לצייר. אם לא תשלח מפתח זה בבקשה, FCM מציג את סמל המפעיל שצוין במניפסט האפליקציה שלך. |
color | צבע הסמל של ההודעה, מבוטא בפורמט #rrggbb. |
sound | הצליל שיש לנגן כאשר המכשיר מקבל את ההתראה. תומך ב"ברירת מחדל" או בשם הקובץ של משאב קול המצורף באפליקציה. קבצי הקול חייבים להיות ב- /res/raw/. |
tag | מזהה המשמש להחלפת הודעות קיימות במגירת ההודעות. אם לא צוין, כל בקשה יוצרת הודעה חדשה. אם צוין וכבר מוצגת הודעה עם אותו תג, ההודעה החדשה מחליפה את הקיימת במגירת ההודעות. |
click_action | הפעולה המשויכת למשתמש לחץ על ההודעה. אם צוין, פעילות עם מסנן כוונות תואם מופעלת כאשר משתמש לוחץ על ההודעה. |
body_loc_key | המפתח למחרוזת הגוף במשאבי המחרוזת של האפליקציה לשימוש כדי לבצע לוקליזציה של טקסט הגוף ללוקליזציה הנוכחית של המשתמש. ראה משאבי מחרוזת למידע נוסף. |
body_loc_args[] | ערכי מחרוזת משתנים שישמשו במקום מפרטי הפורמט ב-body_loc_key לשימוש כדי להתאים את גוף הטקסט ללוקליזציה הנוכחית של המשתמש. ראה עיצוב ועיצוב למידע נוסף. |
title_loc_key | המפתח למחרוזת הכותרת במשאבי המחרוזת של האפליקציה לשימוש כדי לבצע לוקליזציה של טקסט הכותרת ללוקליזציה הנוכחית של המשתמש. ראה משאבי מחרוזת למידע נוסף. |
title_loc_args[] | ערכי מחרוזת משתנים שישמשו במקום מפרטי הפורמט ב-title_loc_key לשימוש כדי להתאים את טקסט הכותרת ללוקליזציה הנוכחית של המשתמש. ראה עיצוב ועיצוב למידע נוסף. |
channel_id | מזהה הערוץ של ההתראה (חדש באנדרואיד O). האפליקציה חייבת ליצור ערוץ עם מזהה ערוץ זה לפני שמתקבלת התראה עם מזהה ערוץ זה. אם לא תשלח את מזהה הערוץ הזה בבקשה, או אם מזהה הערוץ שסופק עדיין לא נוצר על ידי האפליקציה, FCM משתמש במזהה הערוץ שצוין במניפסט האפליקציה. |
ticker | מגדיר את טקסט ה"טיקר", שנשלח לשירותי נגישות. לפני רמת API 21 ( |
sticky | כאשר מוגדר כשווא או לא מוגדר, ההתראה נדחית אוטומטית כאשר המשתמש לוחץ עליה בחלונית. כאשר מוגדר כ-true, ההודעה נמשכת גם כאשר המשתמש לוחץ עליה. |
event_time | הגדר את השעה שבה התרחש האירוע בהודעה. ההתראות בחלונית ממוינות לפי זמן זה. נקודת זמן מיוצגת באמצעות protobuf.Timestamp . חותמת זמן בפורמט RFC3339 UTC "Zulu", עם רזולוציה של ננו-שניות ועד תשע ספרות חלקיות. דוגמאות: |
local_only | הגדר אם התראה זו רלוונטית רק למכשיר הנוכחי או לא. ניתן לגשר הודעות מסוימות למכשירים אחרים לצורך תצוגה מרחוק, כגון שעון Wear OS. ניתן להגדיר רמז זה כך שימליץ שלא לגשר על הודעה זו. ראה מדריכי Wear OS |
notification_priority | הגדר את העדיפות היחסית עבור הודעה זו. עדיפות היא אינדיקציה לכמה מתשומת הלב של המשתמש צריכה להיות נצרך על ידי הודעה זו. הודעות בעדיפות נמוכה עשויות להיות מוסתרות מהמשתמש במצבים מסוימים, בעוד שהמשתמש עשוי להיות מופרע בגלל הודעה בעדיפות גבוהה יותר. ההשפעה של הגדרת אותם סדרי עדיפויות עשויה להיות שונה מעט בפלטפורמות שונות. שימו לב שהעדיפות הזו שונה מ- |
default_sound | אם מוגדר כ-true, השתמש בצליל ברירת המחדל של מסגרת Android עבור ההתראה. ערכי ברירת המחדל מצוינים ב- config.xml . |
default_vibrate_timings | אם מוגדר כ-true, השתמש בדפוס הרטט המוגדר כברירת מחדל של מסגרת Android עבור ההתראה. ערכי ברירת המחדל מצוינים ב- config.xml . אם |
default_light_settings | אם מוגדר כ-true, השתמש בהגדרות ברירת המחדל של תאורת LED של מסגרת Android עבור ההתראה. ערכי ברירת המחדל מצוינים ב- config.xml . אם |
vibrate_timings[] | הגדר את דפוס הרטט לשימוש. העבר מערך של protobuf.Duration כדי להפעיל או לכבות את הוויברטור. הערך הראשון מציין את משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' |
visibility | הגדר את החשיפה של ההודעה. |
notification_count | מגדיר את מספר הפריטים שההודעה הזו מייצגת. עשוי להיות מוצג כספירת תגים עבור משגרים התומכים בתגים. ראה תג הודעה . לדוגמה, זה עשוי להיות שימושי אם אתה משתמש רק בהתראה אחת כדי לייצג מספר הודעות חדשות, אבל אתה רוצה שהספירה כאן תייצג את מספר ההודעות החדשות הכוללות. אם אפס או לא צוין, מערכות התומכות בתג משתמשות בברירת המחדל, שהיא הגדלה של מספר המוצג בתפריט לחיצה ארוכה בכל פעם שמגיעה הודעה חדשה. |
light_settings | הגדרות לשליטה בקצב ההבהוב של ה-LED של ההתראה ובצבע אם LED זמין במכשיר. זמן ההבהוב הכולל נשלט על ידי מערכת ההפעלה. |
image | מכיל את כתובת האתר של תמונה שעומדת להיות מוצגת בהתראה. אם קיים, הוא יעקוף את |
Notification Priority
רמות עדיפות של הודעה.
תקצירים | |
---|---|
PRIORITY_UNSPECIFIED | אם העדיפות לא צוינה, עדיפות ההתראה מוגדרת ל- PRIORITY_DEFAULT . |
PRIORITY_MIN | עדיפות ההתראות הנמוכה ביותר. ייתכן שהודעות עם PRIORITY_MIN זה לא יוצגו למשתמש אלא בנסיבות מיוחדות, כגון יומני התראות מפורטים. |
PRIORITY_LOW | עדיפות הודעה נמוכה יותר. ממשק המשתמש עשוי לבחור להציג את ההתראות קטנות יותר, או במיקום אחר ברשימה, בהשוואה להתראות עם PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | ברירת המחדל של עדיפות הודעה. אם האפליקציה לא נותנת עדיפות להתראות משלה, השתמש בערך זה עבור כל ההתראות. |
PRIORITY_HIGH | עדיפות הודעה גבוהה יותר. השתמש בזה להודעות או התראות חשובות יותר. ממשק המשתמש עשוי לבחור להציג את ההתראות האלה בגדול יותר, או במיקום אחר ברשימות ההתראות, בהשוואה להתראות עם PRIORITY_DEFAULT . |
PRIORITY_MAX | עדיפות ההתראה הגבוהה ביותר. השתמש בזה עבור הפריטים החשובים ביותר של היישום הדורשים תשומת לב מיידית של המשתמש או קלט. |
רְאוּת
רמות נראות שונות של הודעה.
תקצירים | |
---|---|
VISIBILITY_UNSPECIFIED | אם לא צוין, ברירת המחדל היא Visibility.PRIVATE . |
PRIVATE | הצג הודעה זו בכל מסכי הנעילה, אך הסתר מידע רגיש או פרטי במסכי נעילה מאובטחים. |
PUBLIC | הצג את ההודעה הזו בשלמותה בכל מסכי הנעילה. |
SECRET | אל תחשוף שום חלק מההודעה הזו במסך נעילה מאובטח. |
LightSettings
הגדרות לשליטה על נורית התראות.
ייצוג JSON |
---|
{
"color": {
object ( |
שדות | |
---|---|
color | נדרש. הגדר |
light_on_duration | נדרש. יחד עם משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' |
light_off_duration | נדרש. יחד עם משך בשניות עם עד תשע ספרות חלקיות, המסתיים ב- ' |
צֶבַע
מייצג צבע במרחב הצבעים RGBA. ייצוג זה נועד לפשטות של המרה אל/מ ייצוגי צבע בשפות שונות על פני קומפקטיות. לדוגמה, השדות של ייצוג זה יכולים להיות מסופקים באופן טריוויאלי לבנאי של java.awt.Color
ב-Java; זה יכול להיות מסופק באופן טריוויאלי לשיטת +colorWithRed:green:blue:alpha
UIColor ב-iOS; ועם מעט עבודה, ניתן לעצב אותו בקלות למחרוזת CSS rgba()
ב-JavaScript.
דף עזר זה אינו נושא מידע על מרחב הצבע המוחלט שיש להשתמש בו כדי לפרש את ערך ה-RGB (למשל sRGB, Adobe RGB, DCI-P3, BT.2020 וכו'). כברירת מחדל, יישומים צריכים לקבל את מרחב הצבע sRGB.
כאשר צריך להחליט על שוויון צבעים, יישומים, אלא אם כן מתועדים אחרת, מתייחסים לשני צבעים כשווים אם כל ערכי האדום, הירוק, הכחול והאלפא שלהם שונים ב-1e-5 לכל היותר.
דוגמה (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
דוגמה (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
דוגמה (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
ייצוג JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
שדות | |
---|---|
red | כמות האדום בצבע כערך במרווח [0, 1]. |
green | כמות הירוק בצבע כערך במרווח [0, 1]. |
blue | כמות הכחול בצבע כערך במרווח [0, 1]. |
alpha | החלק של הצבע הזה שיש להחיל על הפיקסל. כלומר, צבע הפיקסל הסופי מוגדר על ידי המשוואה: המשמעות היא שערך של 1.0 מתאים לצבע אחיד, בעוד שערך של 0.0 מתאים לצבע שקוף לחלוטין. זה משתמש בהודעת עטיפה ולא בסקלר צף פשוט, כך שניתן להבחין בין ערך ברירת מחדל לבין הערך שבוטל. אם מושמט, אובייקט צבע זה יוצג כצבע אחיד (כאילו לערך האלפא ניתן במפורש ערך של 1.0). |
AndroidFcmOptions
אפשרויות לתכונות הניתנות על ידי FCM SDK עבור אנדרואיד.
ייצוג JSON |
---|
{ "analytics_label": string } |
שדות | |
---|---|
analytics_label | תווית המשויכת לנתוני הניתוח של ההודעה. |
WebpushConfig
אפשרויות פרוטוקול Webpush .
ייצוג JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
שדות | |
---|---|
headers | כותרות HTTP מוגדרות בפרוטוקול webpush. עיין בפרוטוקול Webpush עבור כותרות נתמכות, למשל "TTL": "15". אובייקט המכיל רשימה של |
data | מטען מפתח/ערך שרירותי. אם קיים, הוא יעקוף את אובייקט המכיל רשימה של |
notification | אפשרויות הודעות אינטרנט כאובייקט JSON. תומך במאפייני מופע של Notification כפי שהוגדר ב- Web Notification API . אם קיימים, שדות "כותרת" ו"גוף" עוקפים את |
fcm_options | אפשרויות לתכונות הניתנות על ידי FCM SDK for Web. |
WebpushFcmOptions
אפשרויות לתכונות הניתנות על ידי FCM SDK for Web.
ייצוג JSON |
---|
{ "link": string, "analytics_label": string } |
שדות | |
---|---|
link | הקישור שייפתח כאשר המשתמש ילחץ על ההודעה. עבור כל ערכי כתובת האתר, יש צורך ב-HTTPS. |
analytics_label | תווית המשויכת לנתוני הניתוח של ההודעה. |
ApnsConfig
אפשרויות ספציפיות של Apple Push Notification Service .
ייצוג JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
שדות | |
---|---|
headers | כותרות בקשת HTTP המוגדרות ב-Apple Push Notification Service. עיין בכותרות בקשת APN עבור כותרות נתמכות כגון הקצה האחורי מגדיר ערך ברירת מחדל עבור אובייקט המכיל רשימה של |
payload | מטען APNs כאובייקט JSON, כולל גם מילון |
fcm_options | אפשרויות לתכונות הניתנות על ידי FCM SDK עבור iOS. |
ApnsFcmOptions
אפשרויות לתכונות הניתנות על ידי FCM SDK עבור iOS.
ייצוג JSON |
---|
{ "analytics_label": string, "image": string } |
שדות | |
---|---|
analytics_label | תווית המשויכת לנתוני הניתוח של ההודעה. |
image | מכיל את כתובת האתר של תמונה שעומדת להיות מוצגת בהתראה. אם קיים, הוא יעקוף את |
FcmOptions
אפשרויות בלתי תלויות בפלטפורמה עבור תכונות המסופקות על ידי ערכות ה-SDK של FCM.
ייצוג JSON |
---|
{ "analytics_label": string } |
שדות | |
---|---|
analytics_label | תווית המשויכת לנתוני הניתוח של ההודעה. |
שיטות | |
---|---|
| שלח הודעה ליעד שצוין (אסימון רישום, נושא או תנאי). |