// 傳入資訊
const botData = e.postData.contents ? JSON.parse(e.postData.contents) : {};
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:
}
token:一段時間,token即會失效
const replyToken = botData.events[0].replyToken;
訊息的來源,可能是一個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)
用戶聊天訊息型態
const botMessageType = botData.events[0].message.type;// "text" => 文字訊息
用戶聊天訊息內容
const botMessageText = botData.events[0].message.text;