Title1

Title2

Title3

2-3 做一隻卡米狗

一、資訊

  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.