Message RCS
Cette documentation fournit un aperçu des types de messages et d'actions pris en charge par notre API de messagerie. Chaque type est présenté avec une description et un exemple JSON pour faciliter l'intégration et l'utilisation.
Cette description complète et les exemples JSON fournissent un aperçu approfondi des possibilités de l'API RCS. En utilisant ces différents types de messages et d'actions, les développeurs peuvent créer une expérience utilisateur riche et interactive qui améliore la communication entre les entreprises et les clients.
Structure du message
En principe, chaque message peut être composé d'exactement un type de contenu (text
, carousel
, richcard
ou file
) et contenir optionnellement des réponses suggérées.
Propriétés
- Name
suggestions
- Type
- array
- Optional
- Optional
- Description
Une liste de suggestions de réponse et suggestions d'action qui est affichée comme une liste sous le dernier message d'agent message. Maximum de 11 suggestions.
- Name
text
- Type
- string Union
- Description
Un message texte simple. N'a de sens ici qu'en relation avec des réponses suggérées, car sinon vous pouvez simplement envoyer le texte directement à notre API comme une chaîne simple.
- objectUnion
carousel
Un carrousel est une collection de plusieurs richcards.- Name
width
- Type
- enum
- Description
Taille du carrousel. Peut être soit
SMALL
soitMEDIUM
.
- Name
richcards
- Type
- enum
- Description
Une liste de richcards.
- Name
richcard
- Type
- object Union
- Description
Une richcard est un message enrichi avec du contenu riche. Elle peut contenir du texte, des vidéos, une localisation et bien plus encore. Des boutons sont également possibles avec lesquels le destinataire peut interagir directement, par exemple pour confirmer une réservation ou effectuer un achat.
- Name
file
- Type
- object Union
- Description
Envoyer un fichier, tel qu'une image, un fichier audio ou un document, au destinataire.
{
"suggestions": [
// ...
],
// Seules les propriétés suivantes peuvent être spécifiées
// Soit...
"text": "Votre code est 1234",
// ...soit...
"carousel": {
"width": "SMALL",
"richcards": [
{
// objet richcard...
},
// ...
]
},
// ...soit...
"richcard": {
"orientation": "horizontal",
"thumbnailImageAlignment": "right",
// ...
},
// ...soit...
"file": {
"fileUrl": "https://acme.inc/images/image.png",
"thumbnailUrl": "https://acme.inc/images/thumbnail.png",
"forceRefresh": false
}
}
Richcard
- Name
title
- Type
- string
- Description
Le titre de la richcard
- Name
description
- Type
- string
- Description
La description de la richcard
- Name
orientation
- Type
- enum
- Optional
- Optional
- Description
Cette propriété ne doit être spécifiée que lors de l'envoi de richcards individuelles. Peut contenir soit
horizontal
soitvertical
.
- Name
thumbnailImageAlignment
- Type
- enum
- Optional
- Optional
- Description
Cette propriété ne doit être spécifiée que lors de l'envoi de richcards individuelles en mise en page horizontale. Peut contenir soit
left
soitright
.
- Name
file
- Type
- object
- Optional
- Optional
- Description
Un objet fichier.
- Name
suggestions
- Type
- array
- Optional
- Optional
- Description
Une liste de réponses suggérées et d'actions suggérées qui est affichée dans la carte respective. Maximum de 4 suggestions.
{
"title": "Titre de la richcard",
"description": "Description de la richcard",
"orientation": "horizontal",
"thumbnailImageAlignment": "left",
"file": {
// Objet fichier
// ...
},
"suggestions": [
// liste de réponses suggérées
]
}
Envoyer fichier
Notre API met automatiquement en cache les fichiers et les miniatures. Si vous voulez que notre API recharge l'image, changez-la simplement légèrement. Vous pourriez ajouter un paramètre de requête comme ?timestamp=12345
ou un hashtag.
Les types MIME autorisés sont : image/jpeg
, image/jpg
, image/gif
, image/png
, video/h263
, video/m4v
, video/mp4
, video/mpeg
, video/mpeg4
, video/webm
Si le fichier ne fait pas partie d'une richcard mais est spécifié dans l'élément racine, le type MIME application/pdf
est également autorisé.
Propriétés
- Name
height
- Type
- enum
- Optional
- Optional
- Description
Ne doit être spécifié que lorsqu'utilisé dans une Richcard en mise en page verticale. Peut être soit
short
,medium
outall
.
- Name
fileUrl
- Type
- string Union
- Description
URL publiquement accessible du fichier. La plateforme RBM détermine le type MIME du fichier à partir de l'en-tête HTTP
Content-Type
lorsque le fichier est récupéré. Taille de fichier maximale recommandée de 100 MB.
- Name
fileContents
- Type
- string Union
- Description
Contenu du fichier encodé en base64
- Name
thumbnailUrl
- Type
- string
- Optional
- Optional Union
- Description
Uniquement pour les fichiers image et vidéo. URL publiquement accessible de l'image d'aperçu. Taille maximale 100 kB.
- Name
thumbnailContents
- Type
- string
- Optional
- Optional Union
- Description
Uniquement pour les fichiers image et vidéo. Contenu encodé en base64 du fichier miniature. Taille maximale 100 kB.
Si vous ne spécifiez pas de miniature, une miniature placeholder vide est affichée jusqu'à ce que l'appareil de l'utilisateur télécharge le fichier. Selon les paramètres de l'utilisateur, le fichier peut ne pas être téléchargé automatiquement, mais l'utilisateur doit appuyer sur un bouton de téléchargement.
{
"height": "medium",
"fileUrl": "https://example.com/bild.jpg",
"thumbnailUrl": "https://example.com/thumbnail.jpg"
}
Réponses et actions
Les suggestions ne sont affichées que si le message d'agent associé est le message le plus récent dans la conversation (y compris les messages d'agent et les messages utilisateur). L'utilisateur peut appuyer sur une réponse suggérée pour renvoyer la réponse texte à l'agent ou sur une action suggérée pour démarrer sa propre action sur l'appareil.
Propriétés
- Name
type
- Type
- enum
- Description
Le type de réponse ou d'action suggérée. Peut avoir une des valeurs suivantes :
reply
dial
viewLocation
createCalendarEvent
openUrl
shareLocation
- Name
text
- Type
- string
- Description
Texte d'affichage du bouton.
- Name
postbackData
- Type
- string
- Description
Données à retourner lorsqu'une action est déclenchée.
- Name
phoneNumber
- Type
- string
- Optional
- Optional
- Description
Uniquement pour le type
dial
. Le numéro de téléphone à appeler.
- objectOptional
location
Uniquement pourviewLocation
. Contient les données de la localisation.- Name
latitude
- Type
- string
- Description
latitude
- Name
longitude
- Type
- string
- Description
longitude
- Name
label
- Type
- string
- Description
libellé
- objectOptional
calendarEvent
Uniquement pourcreateCalendarEvent
. Contient les données de l'événement.- Name
startTime
- Type
- string
- Description
L'heure de début du rendez-vous. Les formats courants tels que
19.06.2024 17:23
ou2024-06-19 17:23
sont acceptés.
- Name
endTime
- Type
- string
- Description
L'heure de fin du rendez-vous. Les formats courants tels que
19.06.2024 17:23
ou2024-06-19 17:23
sont acceptés.
- Name
title
- Type
- string
- Description
Le titre de l'événement du calendrier.
- Name
description
- Type
- string
- Description
La description de l'événement du calendrier.
- Name
url
- Type
- string
- Optional
- Optional
- Description
Uniquement pour le type
openUrl
. L'URL à ouvrir.
- Name
webviewMode
- Type
- string
- Optional
- Optional
- Description
Uniquement pour le type
openUrl
. Le mode webview à utiliser lors de l'ouverture de l'URL. Peut être soittall
(le site web occupe trois quarts de l'écran),half
(le site web occupe la moitié de l'écran) oufull
(le site web occupe tout l'écran).
La propriété webviewMode
n'est prise en charge que par certains appareils et peut ne pas fonctionner sur tous les appareils. Si elle n'est pas prise en charge, le comportement par défaut est d'ouvrir l'URL dans le navigateur par défaut de l'appareil.
[
// Réponse suggérée
{
"type": "reply",
"text": "oui",
"postbackData": "clicked_yes"
},
// Appel suggéré
{
"type": "dial",
"text": "appeler",
"postbackData": "clicked_call_button",
"phoneNumber": "49176123456789"
},
// voir localisation
{
"type": "viewLocation",
"text": "voir localisation",
"postbackData": "clicked_view_location_button",
"location": {
"latitude": 54.3233,
"longitude": 10.1228,
"label": "Kiel"
}
},
// Créer événement calendrier
{
"type": "createCalendarEvent",
"text": "créer événement",
"postbackData": "clicked_call_button",
"calendarEvent": {
"startTime": "",
"endTime": "",
"title": "Un rendez-vous important",
"description": "Nous attendons votre visite avec impatience."
}
},
// Ouvrir URL
{
"type": "openUrl",
"text": "Ouvrir",
"postbackData": "clicked_url_button",
"url": "https://www.example.com"
},
// partager localisation
{
"type": "shareLocation",
"text": "partager localisation",
"postbackData": "clicked_share_location_button"
}
]
Exemples
Message texte avec réponses suggérées
Envoie un message texte simple avec trois réponses suggérées au destinataire. Les messages texte sont les types de
messages les plus basiques qui peuvent être utilisés pour la communication directe d'informations, de questions ou d'instructions. Vous recevrez
la valeur de postbackData
de la réponse sélectionnée dans le webhook.

{
"text": "Salut, aimeriez-vous cliquer sur un bouton ?",
"suggestions": [
{
"type": "reply",
"text": "Oui",
"postbackData": "clicked_yes"
},
{
"type": "reply",
"text": "Non",
"postbackData": "clicked_no"
},
{
"type": "reply",
"text": "Je ne sais pas",
"postbackData": "clicked_dont_know"
}
]
}
Richcard simple avec une image
Cet exemple envoie une image avec l'action suggérée d'afficher l'image dans le navigateur. Veuillez noter que les
suggestions
ici sont dans la richcard au lieu d'être sur la couche principale. Si elles étaient sur la couche principale, le message RCS
compterait comme deux messages et serait plus cher.

{
"richcard": {
"title": "Chien",
"description": "Voici la photo d'un chien.",
"orientation": "vertical",
"file": {
"height": "tall",
"fileUrl": "https://picsum.photos/id/237/200/300",
"thumbnailUrl": "https://picsum.photos/id/237/50"
},
"suggestions": [
{
"type": "openUrl",
"text": "Afficher l'image",
"postbackData": "clicked_url",
"url": "https://picsum.photos/id/237/800"
}
]
}
}
Un carrousel vertical
Cet exemple montre un carrousel composé de trois cartes individuelles et étroites dans une mise en page horizontale, chacune avec des hauteurs différentes.
Chacune des trois cartes a une action suggérée. Pour des raisons d'espace, le texte de la réponse suggérée n'est pas affiché en entier sur la première carte et l'action suggérée n'est pas affichée sur la dernière carte.

{
"carousel":
{
"width": "SMALL",
"richcards": [
{
"title": "Chien",
"description": "Photo courte d'un chien.",
"file":
{
"height": "short",
"fileUrl": "https://picsum.photos/id/237/300",
"thumbnailUrl": "https://picsum.photos/id/237/50"
},
"suggestions": [
{
"type": "reply",
"text": "Oui, c'est un chien.",
"postbackData": "yes_this_is_a_dog_clicked"
}
]
},
{
"title": "Chien",
"description": "Photo moyenne d'un chien.",
"file":
{
"height": "medium",
"fileUrl": "https://picsum.photos/id/237/300",
"thumbnailUrl": "https://picsum.photos/id/237/50"
},
"suggestions": [
{
"type": "reply",
"text": "mignon",
"postbackData": "sweet_dog_clicked"
}
]
},
{
"title": "Chien",
"description": "Photo grande d'un chien.",
"file":
{
"height": "tall",
"fileUrl": "https://picsum.photos/id/237/300",
"thumbnailUrl": "https://picsum.photos/id/237/50"
},
"suggestions": [
{
"type": "reply",
"text": "oui",
"postbackData": "yes_clicked"
}
]
}
]
}
}