LINE

בעזרת השילוב של Dialogflow עם LINE, אתם יכולים להשתמש בנציג של Dialogflow כבוט של LINE.

מגבלות

השילוב הזה תומך רק בשפת ברירת המחדל של הנציג.

איך זה עובד

כך השילוב פועל:

  • יוצרים ערוץ LINE.
  • אתם משייכים את הנציג ב-Dialogflow לערוץ הזה, כדי שהם יתקשרו אחד עם השני.
  • השילוב של Dialogflow שולח הודעות למשתמש הקצה באמצעות LINE Messaging API.
  • השילוב של Dialogflow מקבל הודעות ממשתמש הקצה על ידי פעולה בתור LINE Webhook.

הגדרה

כדי להגדיר את השילוב:

  1. כדי ליצור ערוץ LINE, פועלים לפי השלבים שמפורטים במאמר תחילת העבודה עם Messaging API.
  2. משיגים את כתובת ה-webhook של LINE ממסוף Dialogflow:
    1. נכנסים למסוף Dialogflow ES.
    2. בתפריט הצדדי שמימין, לוחצים על Integrations (שילובים).
    3. לוחצים על LINE.
    4. מעתיקים את הערך של Webhook URL. הוא נדרש כדי להגדיר את ה-webhook של LINE.
  3. מגדירים תגובה לפעולה מאתר אחר (webhook) ב-LINE:
    1. כדי להגדיר תגובה לפעולה מאתר אחר (webhook) של LINE לערוץ, פועלים לפי השלבים שמפורטים במאמר LINE Receiving messages (webhooks)‎.
    2. מגדירים את ה-webhook של LINE באמצעות כתובת ה-URL של ה-webhook שהעתקתם קודם.
    3. מעתיקים את הערכים של מזהה ערוץ,‏ Channel secret ו-טוקן גישה. תצטרכו את הערכים האלה כדי להגדיר את השילוב של Dialogflow.
  4. מגדירים את השילוב עם Dialogflow:
    1. נכנסים למסוף Dialogflow ES.
    2. בתפריט הצדדי שמימין, לוחצים על Integrations (שילובים).
    3. לוחצים על LINE.
    4. מדביקים את מזהה הערוץ, הסוד של הערוץ וטוקן הגישה לערוץ בשדות המתאימים.
    5. בוחרים סביבה, לפי הצורך.
    6. לוחצים על התחלה.

אימות החתימה של ה-webhook

‫Dialogflow ES מאמת את כותרת בקשת ה-HTTP ‏X-Line-Signature בכל בקשת webhook נכנסת באמצעות הסוד של הערוץ ב-LINE.

כדי לאמת את הבקשה, Dialogflow ES מחשב תקציר HMAC-SHA256 בקידוד base64 של גוף בקשת ה-HTTP POST הגולמית עם הסוד של הערוץ, ומשווה אותו לכותרת X-Line-Signature. במסמכי התיעוד של LINE בנושא אימות חתימות מוסבר איך LINE חותמת על המטען הייעודי (payload) של ה-webhook.

אם בבקשת ה-webhook חסרה כותרת X-Line-Signature, או שהיא כפולה או לא תקינה, Dialogflow ES דוחה את הבקשה עם קוד סטטוס HTTP 400 Bad Request.

כדי שאימות החתימה של ה-webhook ימשיך לפעול:

  • מוודאים שהערך של Channel secret שמוגדר במסוף Dialogflow ES תואם לערך הפעיל של Channel secret בהגדרות הערוץ של LINE Messaging API. אם אתם מחליפים או מנפיקים מחדש את הסוד של ערוץ LINE, אתם צריכים לעדכן אותו במסוף Dialogflow ES ולהפעיל מחדש את השילוב.
  • אם אתם מנתבים את תעבורת הנתונים של ה-webhook דרך שרת proxy, API Gateway או שירות תווכה לפני שאתם מעבירים אותה ל-Dialogflow ES, העבירו את הכותרת X-Line-Signature ללא שינוי ושלחו את הבייטים המדויקים של גוף הבקשה הגולמי בלי לבצע סריאליזציה מחדש או לשנות את הרווחים הלבנים.
  • אל תשלחו בקשות לא חתומות ישירות לכתובת ה-URL של ה-webhook של Dialogflow ES LINE.

בדיקה

כדי לבדוק את הנציג, לוחצים על שלוש הנקודות האופקיות במסך הראשי של אפליקציית LINE. לאחר מכן לוחצים על סמל קוד ה-QR וסורקים את קוד ה-QR בדף ההגדרות של הבוט. הבוט יתווסף לרשימת השיחות.

הודעות עם תשובות עשירות

יש תמיכה בהודעות התגובה העשירות הבאות.

תשובות עם תמונות

סוג התגובה של תמונה ב-Dialogflow נשלח ל-LINE כסוג הודעת תמונה ב-LINE.

אלה הפורמטים והגדלים הנתמכים:

  • jpeg
  • גודל מקסימלי: 1MB
  • מידות מקסימליות: 240 x‏ 240

תשובות בכרטיסים

תגובה מסוג כרטיס ב-Dialogflow נשלחת ל-LINE כסוג הודעה של תבנית LINE.

תשובות מהירות

סוג התגובה "תשובה מהירה" של Dialogflow נשלח ל-LINE כסוג הודעה של תבנית LINE.

תשובות עם מטען ייעודי (payload) מותאם אישית

אפשר לשלוח את רוב סוגי ההודעות של LINE באמצעות תגובה עם מטען ייעודי (payload) מותאם אישית.

לדוגמה, המטען הייעודי המותאם אישית הבא מספק הודעת תבנית של LINE:

{
  "type": "template",
  "altText": "this is a buttons template",
  "template": {
    "type": "buttons",
    "thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
    "title": "Menu",
    "text": "Please select",
    "actions": [
      {
        "type": "postback",
        "label": "Buy",
        "data": "action=buy&itemid=123"
      },
      {
        "type": "postback",
        "label": "Add to cart",
        "data": "action=add&itemid=123"
      },
      {
        "type": "uri",
        "label": "View detail",
        "uri": "http://example.com/page/123"
      }
    ]
  }
}