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

אתם יכולים ליצור רכיבי event listener למגוון אירועים שמופעלים על ידי Dialogflow CX Messenger. מידע נוסף זמין במאמר רכיבי event listener. בחלק מהאירועים יש שדה אובייקט 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

מתרחשת כששולחים בקשה לקצה העורפי של 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

מתרחש כשלוחצים על אקורדיון.

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

  • ‫actionLink (string): ה-href של העוגן של האקורדיון, אם צוין

df-button-clicked

מתרחש כשלוחצים על לחצן.

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

  • ‫actionLink (string): ה-href של העוגן של הכפתור שנלחץ, אם צוין
  • ‫event (string): אירוע של הכפתור שנלחץ, אם צוין
  • 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): מאפיין href של הצ'יפ שנלחץ, אם צוין
  • ‫text (string): הטקסט של הצ'יפ שנלחץ

df-citation-clicked

מתרחש כשלוחצים על ציטוט.

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

  • ‫actionLink (string): ה-href של העוגן של הציטוט
  • title (string): שם הציטוט

df-info-card-clicked

מתרחש כשלוחצים על כרטיס מידע.

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

  • ‫actionLink (string): ה-href של העוגן של כרטיס המידע
  • ‫title (string): הכותרת של כרטיס המידע

df-list-element-clicked

מתרחש כשלוחצים על רכיב ברשימה.

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

  • ‫actionLink (string): ה-href של העוגן של רכיב הרשימה, אם צוין
  • ‫event (string): אירוע של רכיב הרשימה שנלחץ, אם צוין
  • 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 של עוגן התמונה, אם צוין