Dialogflow CX Messenger déclenche divers événements pour lesquels vous pouvez créer des écouteurs d'événements.
Certains événements comportent un champ d'objet detail
, qui fournit plus d'informations sur l'événement.
df-messenger-loaded
La boîte de dialogue de l'agent est chargée en premier.
Propriétés détaillées:
- aucun
Exemple :
window.addEventListener('df-messenger-loaded', () => {
// Messenger is now ready.
});
df-chat-open-changed
Le chat est ouvert ou fermé.
Propriétés détaillées:
isOpen
(boolean
): nouvel état de la discussion
Exemple :
window.addEventListener('df-chat-open-changed', (event) => {
console.log(`Chat is ${event.detail.isOpen ? 'open' : 'closed'}`);
});
df-user-input-entered
L'utilisateur a saisi du texte.
Propriétés détaillées:
input
(string
): valeur saisie par l'utilisateur
Exemple :
window.addEventListener('df-user-input-entered', (event) => {
console.log(event.detail.input);
});
df-request-sent
Requête envoyée au backend Dialogflow.
Propriétés détaillées:
data
(object
): conteneur de donnéesdata.requestBody
(object
): demande envoyée
Exemple :
window.addEventListener('df-request-sent', (event) => {
console.log('Request', event.detail.data.requestBody);
});
window.addEventListener('df-request-sent', (event) => {
event.preventDefault(); // Messenger won't send the request.
// Send request yourself.
});
df-response-received
Une réponse est parvenue à la boîte de dialogue de l'agent.
Propriétés détaillées:
data
(object
): conteneur de donnéesdata.messages
(object[]
): liste des messages de réponse analysésraw
(object
): réponse reçue verbatim
Exemple :
window.addEventListener('df-response-received', (event) => {
// Remove all non-text messages.
event.detail.data.messages = event.detail.data.messages.filter(message => {
return message.type === 'text';
});
});
window.addEventListener('df-response-received', (event) => {
event.preventDefault(); // Messenger won't handle the response.
const messenger = document.querySelector('df-messenger');
event.detail.data.messages.forEach(message => {
if (message.type === 'text') {
messenger.renderCustomText(message.text);
}
});
});
df-messenger-error
Une requête envoyée au backend échoue.
Propriétés détaillées:
error
(object
): erreur survenue
Exemple :
window.addEventListener('df-messenger-error', (event) => {
console.log(event.detail.error);
});
df-session-expired
La session avec l'agent a expiré.
Propriétés détaillées:
- aucun
Exemple :
window.addEventListener('df-session-expired', () => {
const messenger = document.querySelector('df-messenger');
messenger.renderCustomText(`*Session expired*`, /* isBot= */ true);
messenger.startNewSession({ retainHistory: true });
});
df-session-ended
La session est terminée.
Propriétés détaillées:
- aucun
Exemple :
window.addEventListener('df-session-ended', () => {
const messenger = document.querySelector('df-messenger');
messenger.renderCustomText(`*Session ended*`, /* isBot= */ true);
messenger.startNewSession({ retainHistory: true });
});
df-url-suggested
URL des ressources suggérées.
Propriétés détaillées:
suggestedUrls
(string[]
): liste des URL suggérées
Exemple :
window.addEventListener('df-url-suggested', (event) => {
if (event.detail.suggestedUrls.length === 1) {
window.location.href = event.detail.suggestedUrls[0];
}
});
df-accordion-clicked
L'utilisateur a cliqué sur l'accordéon.
Propriétés détaillées:
- aucun
df-button-clicked
L'utilisateur a cliqué sur un bouton.
Propriétés détaillées:
actionLink
(string
): href d'ancrage du bouton sur lequel l'utilisateur a cliqué, le cas échéantevent
(string
): événement du bouton sur lequel l'utilisateur a cliqué, le cas échéantlanguageCode
(string
): code de langue de l'événement, le cas échéant, sinon code de langue principaltext
(string
): texte du bouton sur lequel l'utilisateur a cliqué
window.addEventListener('df-button-clicked', (event) => {
event.preventDefault(); // Messenger won't send the "event" request.
// Handle "event" yourself.
});
df-chip-clicked
L'utilisateur a cliqué sur un chip.
Propriétés détaillées:
actionLink
(string
): href d'ancrage du chip sur lequel l'utilisateur a cliqué, le cas échéanttext
(string
): texte du chip sur lequel l'utilisateur a cliqué
df-citation-clicked
L'utilisateur a cliqué sur une citation.
Propriétés détaillées:
actionLink
(string
): href d'ancrage de la citationtitle
(string
): titre de la citation
df-info-card-clicked
L'utilisateur a cliqué sur une fiche d'informations.
Propriétés détaillées:
actionLink
(string
): href d'ancrage de la fiche d'informationstitle
(string
): titre de la fiche d'informations
df-list-element-clicked
L'utilisateur a cliqué sur un élément de liste.
Propriétés détaillées:
actionLink
(string
): href d'ancrage de l'élément de liste, le cas échéantevent
(string
): événement de l'élément de liste sur lequel l'utilisateur a cliqué, le cas échéantlanguageCode
(string
): code de langue de l'événement, le cas échéant, sinon code de langue principaltitle
(string
): titre de l'élément de liste
window.addEventListener('df-list-element-clicked', (event) => {
event.preventDefault(); // Messenger won't send the "event" request.
// Handle "event" yourself.
});
df-image-clicked
L'utilisateur a cliqué sur une image.
Propriétés détaillées:
actionLink
(string
): href de l'ancre de l'image, le cas échéant