行動應用企劃人員養成班
測試.gs
function my() {
let service = get_rows_service();
let botMessageText = "school";
// 尋找符合條件的物件
let matchedObjects = service.filter(item => item.enable === '是');
// 呼叫函式並輸出結果
let result = checkKeyword(matchedObjects, botMessageText);
console.log(result);
}
// 定義函式,將關鍵字轉換為陣列並比對是否包含部分匹配 botMessageText
function checkKeyword(objects, text) {
let result = [];
objects.forEach(object => {
let keywords = object.keyword.split('|');
let found = keywords.some(keyword => text.includes(keyword));
if (found) {
result.push(object);
}
});
return result;
}
else else { let service = get_rows_service(); // 存放符合條件的物件 let matchedObjects = []; // 遍歷資料 service.forEach(item => { // 檢查 enable 屬性是否為 '是' if (item.enable === '是') { // 將 keyword 轉成陣列 let keywords = item.keyword.split('|'); // 檢查陣列中是否包含 botMessageText if (keywords.some(keyword => botMessageText.includes(keyword))) { matchedObjects.push(item); } } }); //------------------------- if(matchedObjects.length === 0)return; //---------------------------------- carousel let message_contents = serviceCarouselTemplate(matchedObjects); let messages = [{ "type": "flex", "altText": "客服回覆",//訊息副標題 "contents": { "type": "carousel", "contents": message_contents } }]; lineReplyMessage(replyToken, messages); return; }
樣版 /**======================================== 客服回覆樣版 =========================================*/ function serviceCarouselTemplate(services) { let rows = []; services.forEach(row => { let message = {}; message.type = "bubble"; message.size = "micro"; if (row.pic) { message.hero = { "type": "image", "url": row.pic, "size": "full", "aspectMode": "cover", "aspectRatio": "320:213" } } message.body = { "type": "box", "layout": "vertical", "spacing": "sm", "paddingAll": "13px" } let contents = []; if (row.title) { contents.push({ "type": "text", "text": row.title, "weight": "bold", "size": "sm", "wrap": true }); } if (row.content) { contents.push({ "type": "text", "text": row.content, "wrap": true, "color": "#8c8c8c", "size": "xs", "flex": 5 }); } if (row.text_label && row.text_content) { contents.push({ "type": "button", "style": row.text_style, "color": "#905c44", "margin": "xxl", "action": { "type": "message", "label": row.text_label, "text": row.text_content } }); } if (row.url_label && row.url_content) { contents.push({ "type": "button", "style": row.url_style, "color": "#8fce00", "margin": "xxl", "action": { "type": "uri", "label": row.url_label, "uri": row.url_content } }); } message.body.contents = contents; rows.push(message); }); return rows; }