iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
生成式 AI

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

【Day 25】主題選單功能(三)— 判斷條件搞清楚執行流程

  • 分享至 

  • xImage
  •  

我們今天最需要的能力是「判斷」、「邏輯」,昨天已經將點擊次數增加和更新的部分做完了,昨天比較多程式碼內容,今天比較多就是動腦的部分。

我們先來想一下在這個功能裡,有哪些需要考慮到的條件/問題:

  1. 使用者某主題達上限,回傳提醒訊息
  2. 超過上限且是最後按的主題再回傳該主題的提醒訊息
  3. 沒有超過上限要接著往下準備傳新聞
  4. 更新都在第一列,怎麼知道最後點擊的主題是哪個?
  5. 點選次數超過 3 次就到上限了
  6. 點選次數怎麼在隔日變回初始狀態?

我在開始做之前就是先以這樣的思考流程,去盡量梳理出一條可以處理可能發生的問題的邏輯線,讓我真正在工作流上面操作時比較不會手忙腳亂,把流程越做越複雜。
腦袋經過剛剛的思考暖機了,接著就讓我們直接開始設置 If 節點吧!

條件判斷

If 節點一:國際超過上限

https://ithelp.ithome.com.tw/upload/images/20250928/201780675L2winzezD.png

我們設定的次數上限是三次,所以我這邊用:
如果主題次數大於等於「4」,且使用者最後點擊的主題是「國際」,那就回傳訊息說國際新聞已達上限。
那如果不符,就到下一個節點,準備進入 RSS 的階段。

會這樣設定是因為,如果沒有多用一個「最後點擊主題」的欄位,那當我 A 主題已達上限,點選 B 主題時雖未達到上限,但因為點擊次數都是更新在試算表第一列,會讀取到 A 主題的已達上限次數,執行後會判斷 B 也達上限。

相同的判斷模式我們要新增「科技」和「娛樂」的 If 節點。

If 節點二:科技超過上限

https://ithelp.ithome.com.tw/upload/images/20250928/201780678iYJK0rRyZ.png

If 節點三:娛樂超過上限

https://ithelp.ithome.com.tw/upload/images/20250928/20178067O0Rm1d0GPf.png

合併及傳遞資料

把昨天用的 Code 節點連接到剛剛做的三個 If 節點當輸入。

https://ithelp.ithome.com.tw/upload/images/20250930/20178067pTzpfwRc2p.png

Merge 節點二

https://ithelp.ithome.com.tw/upload/images/20250928/201780671FiYEAixfP.png

將最前面的 Code 節點和剛剛做的三個 If 節點的 true 分支放到 Input,把那些資料都輸出給 HTTP Request 節點。

HTTP Request 節點

輸入以下程式碼:

{
"replyToken": "{{$json.replyToken}}",
  "messages": [
    { 
      "type": "text",
      "text": "你已達到今日可看{{$json.lastTopicCN}}新聞的次數上限囉!請明天再來。"
    }
  ]
}

好啦我們今天就先做到這邊,條件判斷的部分做完一半了,其實只要腦袋清楚,想到那些需要判斷的邏輯部分,找到可行的方法的話,整個流程就會更清楚乾淨。

聊天室實際畫面

https://ithelp.ithome.com.tw/upload/images/20250928/201780677b3q4zeOpi.png

下篇預告

明天(Day 26)我們會把剩下的三個 If 節點做完~


上一篇
【Day 24】主題選單功能(二)— 主題點擊追蹤,更新試算表資料
下一篇
【Day 26】主題選單功能(四)— 判斷是否傳新聞
系列文
打造自己的 AI 新聞小編:每天自動抓新聞、摘要、推送到 LINE!29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言