Dialogflow 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 d'abord chargée.
Propriétés des détails:
- aucun
Exemple :
window.addEventListener('df-messenger-loaded', () => {
// Messenger is now ready.
});
df-chat-open-changed
Le chat est ouvert ou fermé.
Propriétés des détails:
isOpen
(boolean
): nouvel état du chat
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 des détails:
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 des détails:
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(); // Dialogflow Messenger won't send the request.
// Send request yourself.
});
df-response-received
Une réponse est arrivée dans la boîte de dialogue de l'agent.
Propriétés des détails:
data
(object
): conteneur de donnéesdata.messages
(object[]
): liste des messages de réponse analysés.raw
(object
): réponse textuelle reçue
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(); // Dialogflow 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 au backend échoue.
Propriétés des détails:
error
(object
): erreur qui s'est produite
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 des détails:
- 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 des détails:
- 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 des détails:
suggestedUrls
(string[]
): liste d'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 des détails:
- aucun
df-button-clicked
L'utilisateur a cliqué sur un bouton.
Propriétés des détails:
actionLink
(string
): attribut "href" de l'ancrage du bouton ayant enregistré le clic, s'il est spécifiéevent
(string
): événement du bouton sur lequel l'utilisateur a cliqué, s'il est spécifiélanguageCode
(string
): code de langue de l'événement s'il est spécifié, sinon le code de langue principaltext
(string
): texte du bouton sur lequel l'utilisateur a cliqué
window.addEventListener('df-button-clicked', (event) => {
event.preventDefault(); // Dialogflow Messenger won't send the "event" request.
// Handle "event" yourself.
});
df-chip-clicked
L'utilisateur a cliqué sur un chip.
Propriétés des détails:
actionLink
(string
): attribut "href" de l'ancre du chip cliqué, s'il est spécifiétext
(string
): texte du chip sur lequel l'utilisateur a cliqué
df-citation-clicked
L'utilisateur a cliqué sur une citation.
Propriétés des détails:
actionLink
(string
): attribut "href" de la citationtitle
(string
): titre de la citation.
df-info-card-clicked
L'utilisateur a cliqué sur une fiche info.
Propriétés des détails:
actionLink
(string
): attribut "href" de la fiche infotitle
(string
): titre de la fiche info
df-list-element-clicked
L'utilisateur a cliqué sur un élément de la liste.
Propriétés des détails:
actionLink
(string
): ancrage de l'attribut "href" de l'élément de liste, s'il est spécifiéevent
(string
): événement de l'élément de la liste ayant enregistré le clic, s'il est spécifié.languageCode
(string
): code de langue de l'événement s'il est spécifié, sinon le code de langue principaltitle
(string
): titre de l'élément de liste.
window.addEventListener('df-list-element-clicked', (event) => {
event.preventDefault(); // Dialogflow Messenger won't send the "event" request.
// Handle "event" yourself.
});
df-image-clicked
L'utilisateur a cliqué sur une image.
Propriétés des détails:
actionLink
(string
): ancrage de l'attribut "href" de l'image, s'il est spécifié