線上書籍

Home

GAS 開發 LineBot 自動接單系統

一、資訊

  1.  取得 Line Bot 資料,其送來的JSON字串,故需用 「JSON.parse()」還原為 物件 // 傳入資訊 const botData = e.postData.contents ? JSON.parse(e.postData.contents) : {};
  2. event(事件)的形式,包括
     

    // 事件類型 const botType = botData.events[0].type;


     

    type: message(使用者傳送訊息給聊天機器人), follow(使用者將聊天機器人家為好友), unfollow(使用者封鎖聊天機器人), join(使用者將聊天機器人加入群組), leave(聊天機器人離開群組), postback(當使用者表現postback的動作), beacon(當使用者進入或離開Line beacon的範圍)

    根據 type做一個流程控制
     

    switch (botType) { case 'message': //用戶傳送訊息給聊天機器人 lineMessage(botData); break; case 'follow': //用戶將聊天機器人加為好友 // follow(botData); break; case 'unfollow': //用戶封鎖聊天機器人 // unfollow(botData); break; case 'join': //用戶將聊天機器人加入群組 // join(botData); break; case 'leave': //聊天機器人離開群組 // leave(botData); break; case 'postback': //當用戶表現postback的動作 break; case 'beacon': //當用戶進入或離開Line beacon的範圍 break; default: }

     

  3. token:一段時間,token即會失效
     const replyToken = botData.events[0].replyToken;

  4. 訊息的來源,可能是一個user(使用者)、group(群組)或room(聊天室)
    const source = botData.events[0].source;

    source: 若訊息的來源為user,則source中包含兩個屬性type(訊息來源的形式)及userId(傳送此訊息的使用者id) 若訊息的來源為group,則source中包含兩個屬性type(訊息來源的形式)及groupId(傳送此訊息的群組id), 若使用者有同意Official Accounts Terms of Use會多一個屬性userId(傳送此訊息的使用者id) 若訊息的來源為room,則source中包含兩個屬性type(訊息來源的形式)及roomId(傳送此訊息的聊天室id), 若使用者有同意Official Accounts Terms of Use會多一個屬性userId(傳送此訊息的使用者id)

     

  5. 用戶聊天訊息型態
    const botMessageType = botData.events[0].message.type;// "text" => 文字訊息

  6. 用戶聊天訊息內容
    const botMessageText = botData.events[0].message.text;

  7.