אירועי JavaScript ב-Dialogflow CX Messenger

‫Dialogflow CX Messenger מפעיל מגוון אירועים שאפשר ליצור עבורם event listeners. בחלק מהאירועים יש שדה אובייקט detail שמספק מידע נוסף על האירוע.

df-messenger-loaded

קודם נטען הדיאלוג של הסוכן.

מאפייני פרטים:

  • ללא

לדוגמה:

window.addEventListener('df-messenger-loaded', () => {
  // Messenger is now ready.
});

df-chat-open-changed

הצ'אט ייפתח או ייסגר.

מאפייני פרטים:

  • isOpen (boolean): מצב חדש של הצ'אט

לדוגמה:

window.addEventListener('df-chat-open-changed', (event) => {
  console.log(`Chat is ${event.detail.isOpen ? 'open' : 'closed'}`);
});

df-user-input-entered

המשתמש הזין טקסט.

מאפייני פרטים:

  • input (string): הערך שהמשתמש הזין

לדוגמה:

window.addEventListener('df-user-input-entered', (event) => {
  console.log(event.detail.input);
});

df-request-sent

בקשה שנשלחה אל ה-Backend של Dialogflow CX.

מאפייני פרטים:

  • data (object): מאגר נתונים
  • data.requestBody (object): בקשה שנשלחה

לדוגמה:

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

התקבלה תשובה לשיחה עם הסוכן.

מאפייני פרטים:

לדוגמה:

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

בקשה לשרת העורפי נכשלת.

מאפייני פרטים:

  • error (object): השגיאה שהתרחשה

לדוגמה:

window.addEventListener('df-messenger-error', (event) => {
  console.log(event.detail.error);
});

df-session-expired

פג התוקף של הסשן עם הנציג.

מאפייני פרטים:

  • ללא

לדוגמה:

window.addEventListener('df-session-expired', () => {
  const messenger = document.querySelector('df-messenger');
  messenger.renderCustomText(`*Session expired*`, /* isBot= */ true);
  messenger.startNewSession({ retainHistory: true });
});

df-session-ended

הסשן הסתיים.

מאפייני פרטים:

  • ללא

לדוגמה:

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 של מקורות מידע מוצעים.

מאפייני פרטים:

  • suggestedUrls (string[]): רשימה של כתובות URL מוצעות

לדוגמה:

window.addEventListener('df-url-suggested', (event) => {
  if (event.detail.suggestedUrls.length === 1) {
    window.location.href = event.detail.suggestedUrls[0];
  }
});

df-accordion-clicked

המשתמש לחץ על האקורדיון.

מאפייני פרטים:

  • ללא

df-button-clicked

משתמש לחץ על לחצן.

מאפייני פרטים:

  • actionLink (string): תג anchor href של הכפתור שנלחץ, אם צוין
  • event (string): event של הכפתור שנלחץ, אם הוא צוין
  • languageCode (string): קוד השפה של האירוע אם הוא צוין, אחרת קוד השפה הראשי
  • text (string): הטקסט של הכפתור שנלחץ
window.addEventListener('df-button-clicked', (event) => {
  event.preventDefault(); // Messenger won't send the "event" request.

  // Handle "event" yourself.
});

df-chip-clicked

משתמש לחץ על צ'יפ.

מאפייני פרטים:

  • actionLink (string): anchor href של הצ'יפ שנלחץ, אם צוין
  • text (string): הטקסט בצ'יפ שעליו לחצו

df-citation-clicked

משתמש לחץ על ציטוט.

מאפייני פרטים:

  • actionLink (string): anchor href של הציטוט
  • title (string): שם הציטוט

df-info-card-clicked

משתמש לחץ על כרטיס מידע.

מאפייני פרטים:

  • actionLink (string): anchor href of the info-card
  • title (string): שם כרטיס המידע

df-list-element-clicked

המשתמש לחץ על רכיב ברשימה.

מאפייני פרטים:

  • actionLink (string): מאפיין ה-href של העוגן של רכיב הרשימה, אם צוין
  • event (string): event של רכיב הרשימה שנלחץ, אם צוין
  • languageCode (string): קוד השפה של האירוע אם הוא צוין, אחרת קוד השפה הראשי
  • title (string): שם רכיב הרשימה
window.addEventListener('df-list-element-clicked', (event) => {
  event.preventDefault(); // Messenger won't send the "event" request.

  // Handle "event" yourself.
});

df-image-clicked

משתמש לחץ על תמונה.

מאפייני פרטים:

  • actionLink (string): מאפיין ה-href של העוגן של התמונה, אם הוא צוין