Ressource : Message
Message à envoyer par Firebase Cloud Messaging Service.
Représentation JSON |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
Des champs | |
---|---|
name | Sortie uniquement. L'identifiant du message envoyé, au |
data | Entrée uniquement. Charge utile clé/valeur arbitraire, qui doit être codée en UTF-8. La clé ne doit pas être un mot réservé ("from", "message_type" ou tout mot commençant par "google" ou "gcm"). Lors de l'envoi de charges utiles contenant uniquement des champs de données vers des appareils iOS, seule la priorité normale ( Un objet contenant une liste de paires |
notification | Entrée uniquement. Modèle de notification de base à utiliser sur toutes les plateformes. |
android | Entrée uniquement. Options spécifiques à Android pour les messages envoyés via le serveur de connexion FCM . |
webpush | Entrée uniquement. Options du protocole Webpush . |
apns | Entrée uniquement. Options spécifiques au service de notification push Apple . |
fcm_options | Entrée uniquement. Modèle pour les options de fonctionnalités du SDK FCM à utiliser sur toutes les plateformes. |
target de terrain de l'Union. Requis. Entrée uniquement. Cible à laquelle envoyer un message. target ne peut être qu’un des éléments suivants : | |
token | Jeton d'inscription à qui envoyer un message. |
topic | Nom du sujet auquel envoyer un message, par exemple "météo". Remarque : le préfixe "/topics/" ne doit pas être fourni. |
condition | Condition à laquelle envoyer un message, par exemple "'foo' dans les sujets && 'bar' dans les sujets". |
Notification
Modèle de notification de base à utiliser sur toutes les plateformes.
Représentation JSON |
---|
{ "title": string, "body": string, "image": string } |
Des champs | |
---|---|
title | Le titre de la notification. |
body | Le corps du texte de la notification. |
image | Contient l'URL d'une image qui va être téléchargée sur l'appareil et affichée dans une notification. JPEG, PNG et BMP sont entièrement pris en charge sur toutes les plates-formes. Les GIF animés et les vidéos ne fonctionnent que sur iOS. WebP et HEIF ont différents niveaux de prise en charge selon les plates-formes et les versions de plate-forme. Android a une limite de taille d’image de 1 Mo. Utilisation du quota et implications/coûts pour l'hébergement de l'image sur Firebase Storage : https://firebase.google.com/pricing |
AndroidConfig
Options spécifiques à Android pour les messages envoyés via le serveur de connexion FCM .
Représentation JSON |
---|
{ "collapse_key": string, "priority": enum ( |
Des champs | |
---|---|
collapse_key | Identificateur d'un groupe de messages qui peut être réduit, de sorte que seul le dernier message soit envoyé lorsque la livraison peut reprendre. Un maximum de 4 clés de réduction différentes est autorisé à un moment donné. |
priority | Priorité des messages. Peut prendre des valeurs « normales » et « élevées ». Pour plus d'informations, voir Définir la priorité d'un message . |
ttl | Combien de temps (en secondes) le message doit être conservé dans le stockage FCM si l'appareil est hors ligne. La durée maximale de vie prise en charge est de 4 semaines et la valeur par défaut est de 4 semaines si elle n'est pas définie. Réglez-le sur 0 si vous souhaitez envoyer le message immédiatement. Au format JSON, le type Duration est codé sous forme de chaîne plutôt que d'objet, où la chaîne se termine par le suffixe « s » (indiquant les secondes) et est précédée du nombre de secondes, les nanosecondes étant exprimées en fractions de seconde. Par exemple, 3 secondes avec 0 nanoseconde doivent être codées au format JSON sous la forme « 3s », tandis que 3 secondes et 1 nanoseconde doivent être exprimées au format JSON sous la forme « 3.000000001s ». Le ttl sera arrondi à la seconde inférieure. Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « |
restricted_package_name | Nom du package de l’application où le jeton d’enregistrement doit correspondre pour recevoir le message. |
data | Charge utile clé/valeur arbitraire. S'il est présent, il remplacera Un objet contenant une liste de paires |
notification | Notification à envoyer aux appareils Android. |
fcm_options | Options pour les fonctionnalités fournies par le SDK FCM pour Android. |
direct_boot_ok | S'il est défini sur true, les messages pourront être transmis à l'application lorsque l'appareil est en mode de démarrage direct. Voir Prise en charge du mode de démarrage direct . |
AndroidMessagePriorité
Priorité d'un message à envoyer aux appareils Android. Notez que cette priorité est un concept FCM qui contrôle le moment où le message est remis. Voir les guides FCM . De plus, vous pouvez déterminer la priorité d'affichage des notifications sur les appareils Android ciblés à l'aide de AndroidNotification.NotificationPriority .
Énumérations | |
---|---|
NORMAL | Priorité par défaut pour les messages de données. Les messages de priorité normale n'ouvriront pas les connexions réseau sur un appareil en veille et leur livraison peut être retardée pour économiser la batterie. Pour les messages moins urgents, tels que les notifications de nouveaux e-mails ou d'autres données à synchroniser, choisissez la priorité de livraison normale. |
HIGH | Priorité par défaut pour les messages de notification. FCM tente de transmettre immédiatement des messages hautement prioritaires, permettant au service FCM de réveiller un appareil en veille lorsque cela est possible et d'ouvrir une connexion réseau à votre serveur d'applications. Les applications proposant des alertes de messagerie instantanée, de chat ou d'appel vocal, par exemple, doivent généralement ouvrir une connexion réseau et s'assurer que FCM transmet le message à l'appareil sans délai. Définissez une priorité élevée si le message est urgent et nécessite une interaction immédiate de l'utilisateur, mais sachez que définir une priorité élevée pour vos messages contribue davantage à l'épuisement de la batterie par rapport aux messages de priorité normale. |
AndroidNotification
Notification à envoyer aux appareils Android.
Représentation 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 ( |
Des champs | |
---|---|
title | Le titre de la notification. S'il est présent, il remplacera |
body | Le corps du texte de la notification. S'il est présent, il remplacera |
icon | L'icône de la notification. Définit l'icône de notification sur myicon pour la ressource pouvant être dessinée myicon. Si vous n'envoyez pas cette clé dans la demande, FCM affiche l'icône du lanceur spécifiée dans le manifeste de votre application. |
color | La couleur de l'icône de la notification, exprimée au format #rrggbb. |
sound | Le son à jouer lorsque l'appareil reçoit la notification. Prend en charge « par défaut » ou le nom de fichier d'une ressource sonore fournie dans l'application. Les fichiers son doivent résider dans /res/raw/. |
tag | Identifiant utilisé pour remplacer les notifications existantes dans le tiroir de notifications. Si non spécifié, chaque demande crée une nouvelle notification. Si cela est spécifié et qu'une notification avec la même balise est déjà affichée, la nouvelle notification remplace celle existante dans le tiroir de notification. |
click_action | L'action associée à un utilisateur clique sur la notification. Si spécifié, une activité avec un filtre d'intention correspondant est lancée lorsqu'un utilisateur clique sur la notification. |
body_loc_key | Clé de la chaîne de corps dans les ressources de chaîne de l'application à utiliser pour localiser le corps du texte selon la localisation actuelle de l'utilisateur. Voir Ressources de chaînes pour plus d'informations. |
body_loc_args[] | Valeurs de chaîne variable à utiliser à la place des spécificateurs de format dans body_loc_key à utiliser pour localiser le corps du texte selon la localisation actuelle de l'utilisateur. Voir Formatage et style pour plus d’informations. |
title_loc_key | Clé de la chaîne de titre dans les ressources de chaîne de l'application à utiliser pour localiser le texte du titre dans la localisation actuelle de l'utilisateur. Voir Ressources de chaînes pour plus d'informations. |
title_loc_args[] | Valeurs de chaîne variable à utiliser à la place des spécificateurs de format dans title_loc_key à utiliser pour localiser le texte du titre dans la localisation actuelle de l'utilisateur. Voir Formatage et style pour plus d’informations. |
channel_id | L' identifiant du canal de notification (nouveau dans Android O). L'application doit créer une chaîne avec cet ID de chaîne avant de recevoir toute notification avec cet ID de chaîne. Si vous n'envoyez pas cet ID de canal dans la demande, ou si l'ID de canal fourni n'a pas encore été créé par l'application, FCM utilise l'ID de canal spécifié dans le manifeste de l'application. |
ticker | Définit le texte du « ticker » qui est envoyé aux services d'accessibilité. Avant le niveau d'API 21 ( |
sticky | Lorsqu'elle est définie sur false ou non définie, la notification est automatiquement ignorée lorsque l'utilisateur clique dessus dans le panneau. Lorsqu'elle est définie sur true, la notification persiste même lorsque l'utilisateur clique dessus. |
event_time | Définissez l'heure à laquelle l'événement dans la notification s'est produit. Les notifications dans le panneau sont triées selon cette heure. Un moment précis est représenté à l’aide de protobuf.Timestamp . Un horodatage au format RFC3339 UTC "Zulu", avec une résolution en nanosecondes et jusqu'à neuf chiffres fractionnaires. Exemples : |
local_only | Définissez si cette notification concerne uniquement l'appareil actuel. Certaines notifications peuvent être reliées à d'autres appareils pour un affichage à distance, comme une montre Wear OS. Cet indice peut être défini pour recommander que cette notification ne soit pas pontée. Consultez les guides Wear OS |
notification_priority | Définissez la priorité relative de cette notification. La priorité est une indication de la part d’attention de l’utilisateur qui doit être absorbée par cette notification. Les notifications de faible priorité peuvent être masquées à l'utilisateur dans certaines situations, tandis que l'utilisateur peut être interrompu pour une notification de priorité plus élevée. L’effet de la définition des mêmes priorités peut différer légèrement selon les plates-formes. Notez que cette priorité diffère de |
default_sound | S'il est défini sur true, utilisez le son par défaut du framework Android pour la notification. Les valeurs par défaut sont spécifiées dans config.xml . |
default_vibrate_timings | S'il est défini sur true, utilisez le modèle de vibration par défaut du framework Android pour la notification. Les valeurs par défaut sont spécifiées dans config.xml . Si |
default_light_settings | S'il est défini sur true, utilisez les paramètres d'éclairage LED par défaut du framework Android pour la notification. Les valeurs par défaut sont spécifiées dans config.xml . Si |
vibrate_timings[] | Définissez le modèle de vibration à utiliser. Passez un tableau de protobuf.Duration pour allumer ou éteindre le vibrateur. La première valeur indique la Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « |
visibility | Définissez la notification.visibilité de la notification. |
notification_count | Définit le nombre d’éléments représentés par cette notification. Peut être affiché sous forme de nombre de badges pour les lanceurs prenant en charge les badges. Voir Badge de notification . Par exemple, cela peut être utile si vous utilisez une seule notification pour représenter plusieurs nouveaux messages mais que vous souhaitez que le nombre ici représente le nombre total de nouveaux messages. S'il est nul ou non spécifié, les systèmes prenant en charge les badges utilisent la valeur par défaut, qui consiste à incrémenter un nombre affiché dans le menu enfoncé à chaque fois qu'une nouvelle notification arrive. |
light_settings | Paramètres permettant de contrôler le taux de clignotement et la couleur de la LED de notification si la LED est disponible sur l'appareil. Le temps de clignotement total est contrôlé par le système d'exploitation. |
image | Contient l'URL d'une image qui va être affichée dans une notification. S'il est présent, il remplacera |
Priorité de notification
Niveaux de priorité d'une notification.
Énumérations | |
---|---|
PRIORITY_UNSPECIFIED | Si la priorité n'est pas spécifiée, la priorité de notification est définie sur PRIORITY_DEFAULT . |
PRIORITY_MIN | Priorité de notification la plus basse. Les notifications avec cette PRIORITY_MIN peuvent ne pas être affichées à l'utilisateur, sauf dans des circonstances particulières, telles que des journaux de notification détaillés. |
PRIORITY_LOW | Priorité de notification inférieure. L'interface utilisateur peut choisir d'afficher les notifications plus petites ou à une position différente dans la liste, par rapport aux notifications avec PRIORITY_DEFAULT . |
PRIORITY_DEFAULT | Priorité de notification par défaut. Si l'application ne donne pas la priorité à ses propres notifications, utilisez cette valeur pour toutes les notifications. |
PRIORITY_HIGH | Priorité de notification plus élevée. Utilisez-le pour les notifications ou alertes plus importantes. L'interface utilisateur peut choisir d'afficher ces notifications plus grandes ou à une position différente dans les listes de notifications, par rapport aux notifications avec PRIORITY_DEFAULT . |
PRIORITY_MAX | Priorité de notification la plus élevée. Utilisez-le pour les éléments les plus importants de l'application qui nécessitent une attention ou une saisie rapide de l'utilisateur. |
Visibilité
Différents niveaux de visibilité d'une notification.
Énumérations | |
---|---|
VISIBILITY_UNSPECIFIED | Si non spécifié, la valeur par défaut est Visibility.PRIVATE . |
PRIVATE | Affichez cette notification sur tous les écrans de verrouillage, mais masquez les informations sensibles ou privées sur les écrans de verrouillage sécurisés. |
PUBLIC | Afficher cette notification dans son intégralité sur tous les écrans de verrouillage. |
SECRET | Ne révélez aucune partie de cette notification sur un écran de verrouillage sécurisé. |
Paramètres d'éclairage
Paramètres pour contrôler le voyant de notification.
Représentation JSON |
---|
{
"color": {
object ( |
Des champs | |
---|---|
color | Requis. Définissez |
light_on_duration | Requis. Avec Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « |
light_off_duration | Requis. Avec Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, se terminant par « |
Couleur
Représente une couleur dans l’espace colorimétrique RGBA. Cette représentation est conçue pour simplifier la conversion vers/depuis les représentations de couleurs dans différentes langues tout en étant compacte. Par exemple, les champs de cette représentation peuvent être fournis de manière triviale au constructeur de java.awt.Color
en Java ; il peut également être fourni de manière triviale à la méthode +colorWithRed:green:blue:alpha
UIColor dans iOS ; et, avec juste un peu de travail, il peut être facilement formaté en une chaîne CSS rgba()
en JavaScript.
Cette page de référence ne contient pas d'informations sur l'espace colorimétrique absolu qui doit être utilisé pour interpréter la valeur RVB (par exemple sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). Par défaut, les applications doivent adopter l'espace colorimétrique sRGB.
Lorsque l'égalité des couleurs doit être décidée, les implémentations, sauf indication contraire, traitent deux couleurs comme égales si toutes leurs valeurs rouge, vert, bleu et alpha diffèrent chacune d'au plus 1e-5.
Exemple (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();
}
// ...
Exemple (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;
}
// ...
Exemple (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('');
};
// ...
Représentation JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Des champs | |
---|---|
red | La quantité de rouge dans la couleur sous forme de valeur dans l'intervalle [0, 1]. |
green | La quantité de vert dans la couleur sous forme de valeur dans l'intervalle [0, 1]. |
blue | La quantité de bleu dans la couleur sous forme de valeur dans l'intervalle [0, 1]. |
alpha | La fraction de cette couleur qui doit être appliquée au pixel. Autrement dit, la couleur finale du pixel est définie par l'équation : Cela signifie qu'une valeur de 1,0 correspond à une couleur unie, tandis qu'une valeur de 0,0 correspond à une couleur complètement transparente. Cela utilise un message wrapper plutôt qu'un simple scalaire flottant afin qu'il soit possible de faire la distinction entre une valeur par défaut et la valeur non définie. S'il est omis, cet objet de couleur est rendu sous forme de couleur unie (comme si la valeur alpha avait reçu explicitement une valeur de 1,0). |
AndroidFcmOptions
Options pour les fonctionnalités fournies par le SDK FCM pour Android.
Représentation JSON |
---|
{ "analytics_label": string } |
Des champs | |
---|---|
analytics_label | Libellé associé aux données d'analyse du message. |
WebpushConfig
Options du protocole Webpush .
Représentation JSON |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
Des champs | |
---|---|
headers | En-têtes HTTP définis dans le protocole webpush. Reportez-vous au protocole Webpush pour les en-têtes pris en charge, par exemple "TTL": "15". Un objet contenant une liste de paires |
data | Charge utile clé/valeur arbitraire. S'il est présent, il remplacera Un objet contenant une liste de paires |
notification | Options de notification Web en tant qu'objet JSON. Prend en charge les propriétés de l'instance de notification telles que définies dans l'API de notification Web . S'ils sont présents, les champs "title" et "body" remplacent |
fcm_options | Options pour les fonctionnalités fournies par le SDK FCM pour le Web. |
WebpushFcmOptions
Options pour les fonctionnalités fournies par le SDK FCM pour le Web.
Représentation JSON |
---|
{ "link": string, "analytics_label": string } |
Des champs | |
---|---|
link | Le lien à ouvrir lorsque l'utilisateur clique sur la notification. Pour toutes les valeurs d'URL, HTTPS est requis. |
analytics_label | Libellé associé aux données d'analyse du message. |
ApnsConfig
Options spécifiques au service de notification push Apple .
Représentation JSON |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
Des champs | |
---|---|
headers | En-têtes de requête HTTP définis dans Apple Push Notification Service. Reportez-vous aux en-têtes de requête APN pour connaître les en-têtes pris en charge tels que Le backend définit une valeur par défaut pour Un objet contenant une liste de paires |
payload | Charge utile APN en tant qu'objet JSON, comprenant à la fois le dictionnaire |
fcm_options | Options pour les fonctionnalités fournies par le SDK FCM pour iOS. |
ApnsFcmOptions
Options pour les fonctionnalités fournies par le SDK FCM pour iOS.
Représentation JSON |
---|
{ "analytics_label": string, "image": string } |
Des champs | |
---|---|
analytics_label | Libellé associé aux données d'analyse du message. |
image | Contient l'URL d'une image qui va être affichée dans une notification. S'il est présent, il remplacera |
OptionsFcm
Options indépendantes de la plate-forme pour les fonctionnalités fournies par les SDK FCM.
Représentation JSON |
---|
{ "analytics_label": string } |
Des champs | |
---|---|
analytics_label | Libellé associé aux données d'analyse du message. |
Méthodes | |
---|---|
| Envoyez un message à la cible spécifiée (un jeton d'enregistrement, un sujet ou une condition). |