2024 laravel 建置 linebot 2024-03-28 15:40:45

因為朋友手遊有line機器人下指令的需求,無聊就幫忙寫了一個
功能需要結合爬蟲取得遊戲後台資料做比對儲存到DB以及多線程發送禮包碼
這篇文章只記錄linebot建置的流程


1.到line developers建立一個messaging api的機器人,取得Channel access token和Channel secret,把Use webhook打開並將Webhook URL填入自己寫的機器人API網址(要有ssl憑證)
過程圖片網路上都有自己查


2.安裝line-bot-sdk
composer require linecorp/line-bot-sdk
參考line-bot-sdk範例建議參考KitchenSink,有針對所有Event的處理方式,要查line bot 的function可以查看LINEBot.php


3.LinebotController.php
(1)填入Channel access token和Channel secret,取得linebot偵測到的Event

(2)針對event使用對應的Handler,這些Handler在KitchenSink範例的資料夾裡面都有,可以複製到你要的路徑進行客製


(3)最後記得回傳狀態200


4.TextMessageHandler.php (這是針對文字輸入事件的Handler,主要更改這個,其他事件都大同小異)
(1)建構子


(2)基本資料取得

getText取得用戶輸入的文字
getReplyToken取得這次事件的token用來回傳訊息
getUserId用來取得發送者的id (這個不是line id),可以拿來判斷權限或著主動推播訊息用

(3)回傳訊息

replyText用來回傳訊息,用來回傳的replyToken只能回傳一次,免費的


pushMessage主動發送訊息,第一個id可以用user id 或者group id來看發送給誰或者哪個群組
據說主動發送訊息有免費限額每個月500條,超過要收錢,但是我還沒用超過500條所以還不知道
MessageTemplateActionBuilder用來產生按鈕,第一個參數是按鈕顯示的文字,第二個是點了之後發送的文字
其他的文字模板可以參考KitchenSink的TextMessageHandler.php


主要用法就這些
line-bot-sdk的範例寫得很詳細,可以直接拿來改

Vincent Chen

無聊寫了一堆雜七雜八程式的勞工