iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
生成式 AI

打造自己的 AI 新聞小編:每天自動抓新聞、摘要、推送到 LINE!系列 第 24

【Day 23】主題選單功能(一)— 基礎工作流設定與資料準備

  • 分享至 

  • xImage
  •  

還記得之前說過 LINE 只能有一個 Webhook 嗎?所以這次的主題選單功能我們也要和前兩個功能一樣的工作流去做,先把 Webhook 和之前做的功能節點斷開,當成現在要做的節點開頭,專注在新功能之後再整合在一起我覺得比較不會做到一半腦袋打結。

主題選單功能

步驟一:新增表單

點擊試算表最底部的「+」新增一個表單「sheet2」。

https://ithelp.ithome.com.tw/upload/images/20250926/201780673K7luDZ4Sc.png

步驟二:更改 Code 節點內容

將之前接在 Webhook 的 Code 節點內容作一點更動,輸入以下程式碼:

const body = $json.body.events;
const userId = $json.body.events[0].source.userId;
const message = $json.body.events[0].message.text;

const topic = message.replace('訂閱', '').trim();
const menuTopicCN = message.replace('我想看', '').replace('新聞!', '').trim(); //1.提取主題
let menuTopicEN;
switch(menuTopicCN){ //2.轉換英文
    case "國際": menuTopicEN = "intworld"; break;
    case "科技": menuTopicEN = "technology"; break;
    case "娛樂": menuTopicEN = "stars"; break;
}

//3.新增表單欄位
const row = $json;

row.intworld = row.intworld;
row.technology = row.technology;
row.stars = row.stars;
row.menuTopicEN = row.menuTopicEN;

return {
    json: {
        message,
        userId,
        topic,
        menuTopicEN,
        intworld: row.intworld,
        technology: row.technology,
        stars: row.stars,
        lineMessageBody: body
    }
};

這邊新增了幾個東西:

  1. 將使用者點選的主題提取出來,和之前提取訂閱主題的方式一樣。
  2. 將提取出來的主題變成英文,先不論會不會其實用中文也可以,用英文總是比中文還不容易出錯,用中文的內容很容易解析不了。
  3. 新增表單欄位,這個表單主要是用來執行主題選單的工作,所以需要新增三個主題的欄位。

步驟三:新增表單內容

在 Code 節點後新增一個 Google Sheets 節點。
應該在做前兩個功能的時候就對這個節點很熟悉了吧!
唯一要注意的是要記得現在資料要存在 sheet2 喔!

https://ithelp.ithome.com.tw/upload/images/20250926/201780674i209PFSpp.png
https://ithelp.ithome.com.tw/upload/images/20250926/20178067xLy9pwLDel.png

先將三個主題的欄位都設為 0 ,之後使用者點擊表單的時候會更新次數。

今天我們就先做到這邊,把準備工作做完,接下來進入到核心邏輯的時候才會比較順利。

下篇預告

明天(Day 24)會進入到最多邏輯思考判斷的部分,讓表單欄位根據點擊次數去做欄位更新。


上一篇
【Day 22】主題選單功能簡化說明
系列文
打造自己的 AI 新聞小編:每天自動抓新聞、摘要、推送到 LINE!24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言