17/10/09 大改版啦,暫時沒空寫更新日誌… 17/10/07 加入了對骰池的支援。 17/09/10 加入了各個檔案的說明。DvTest指令新增可以查閱目前有哪些關鍵字。
骰子狗是一個開放源碼的line骰子機器人計畫,前身是「機器鴨霸獸」。 最早由作者的強者同學(LarryLo)提供基礎原始碼支援。而後幾經開發成為機器鴨霸獸。
然而此時的機器鴨霸獸是以JavaScript寫成,在外連的支援度以及程式碼的分拆上都遇到困難(其實只是我能力不足)。幾經權衡之後決定以php語言重新寫成,並參考網路上的文章後使用linebot的簡易api(參考資料於文末)。
骰子狗並非想要成為一個全功能的骰子機器人,而是希望成為一個引玉的磚頭。也希望能夠成為對開發Line機器人有興趣的人的一塊拍門磚。
事實上骰子狗是建立在Heroku的免費伺服器上,其每個月的運轉額度有限,在月底的時候可能會有額度消耗殆盡而終止服務的可能……所以,自己按照下面的教程,客制化做一個自己的LINEBOT吧!
骰子狗的LineID是:@upl5593r
你也可以使用QR扣:
- 先申請好Line帳號(廢話)
- 先申請好Github帳號
- 先申請好Heroku帳號
以下全部選擇用免費的服務就夠了,請不要手殘選到付費。
- 到https://business.line.me/zh-hant/companies/1253547/services/bot申請一個帳號,
點選「開始使用Messaging API」,按照指示建立你的line賬號。
- 再取得Channel Access Token,按右邊的按鈕
把取得的字串複製到Step3的LINE_CHANNEL_ACCESSTOKEN
接著,按下Deploy app,等他跑完之後按下Manage App
距離部署完機器人只差一步啦!
回到Heroku網頁,點選上面的Deploy,你會看到四種配置程式碼的方法。
我猜想如果你是會用第一種(Heroku Git)或是第四種(Container Registry)的人,應該是不會看這種教學文~所以我就不介紹了~
絕、絕對不是我自己也不會的關係哦(眼神漂移)
以第二種(Github)來說的話,你可以綁定你的Github賬號——剛剛我們不是fork了一份程式碼回去嗎?把它連接上去,這樣你就可以在Github那邊修改你要的程式碼,再Deploy過來。
或是你可以使用第三種(Dropbox),當你鏈接之後,它會自動幫你把你剛剛上線的程式碼下載到你的dropbox裡面。你修改完之後再上來Deploy就好咯。
路徑 | 檔名 | 說明 |
---|---|---|
.\ | app.json | Heroku的設置文件,LINE_CHANNEL_SECRET 和 LINE_CHANNEL_ACCESSTOKEN的宣告就是在這裡達成的。 |
.\ | composer.json | php 語言特有的文件。php 語言相當古老且發展相當完整,因此有很多時候可以直接調用函數模組。這個文件就是在做這件事——但本機器人只用了最低限度的LineApi,而且已經包含在程式裡面了。因此這次 composer.json 沒有用到太多。 |
.\ | composer.lock | 執行 composer 產生的驗證文件。 |
.\ | README.md | 就是你現在看到的這個說明文件啦! |
.\ | .gitattributes | git 的相關文件,解釋起來很複雜,而且這次用不到。不要理他就好。 |
.\LINE\ | 資料夾 | 這個資料夾裡面放的是主要的程式碼。 |
.\LINE\ | index.php | 主程式,或說起動時會被要求執行的程式。骨幹的程式碼都在這裡喔。 |
.\LINE\ | LINEBotTiny.php | LINE的API,如名稱所見是簡易板。畢竟從SDK那邊下載的實在太肥大了,雖然主要只支援接收和傳輸訊息,但對這隻BOT來說已經綽綽有餘了。 |
.\LINE\ | nomalReply.php | 非骰組的程式碼。主要是「關鍵字」觸發指令的內容。 |
.\LINE\Dice\ | 資料夾 | 這個資料夾裡面放的是各系統的骰組。 |
.\LINE\Dice\ | Dice_nomalDice.php | 這是一般通用擲骰。 |
.\LINE\Dice\ | Dice_extraDice.php | 這是擴充擲骰,包含骰池在內。未來可能會新增D66之類的吧。 |
.\LINE\Dice\ | Dice_CoC7th.php | 這是克蘇魯的呼喚(7版)的骰子。 |
.\LINE\Dice\ | Dice_pbta.php | 這是pbta系列系統的骰子。 |
.\LINE\ReplyJson\ | 資料夾 | 這裡是放像是說明書,或是梗圖關鍵字之類的地方。其實也可以外連,我個人推薦外連。放在這裡只是給大家看看範例的json長什麼樣子。只要符合格式就可以正確讀取喔。 |
.\LINE\ReplyJson\ | manual.json | 骰子機器人的說明文件,集中在一起比較容易修改。 |
.\LINE\ReplyJson\ | textReply.json | 會針對關鍵字回應;之前的鴨霸獸裡面有很多靠北的關鍵字,之前是包在程式碼裡面,現在拉出來更好修改了。 |
.\LINE\ReplyJson\ | imgReply.json | 針對圖片關鍵字的回應。圖片要找地方上傳,我個人推薦的圖床是imgur。附帶一提LINE只吃加密連線的https,不過放心,它會自動幫你把http網址轉成https,很聰明的。 |
Chatbot 開發指南:使用 LINE Bot PHP SDK 打造問答型聊天機器人
https://www.appcoda.com.tw/line-chatbot-sdk/
使用PHP+Heroku快速打造Linebot回話機器人
http://www.chy.tw/2017/08/phpherokulinebot.html
感謝強者我同學(LarryLo)在最開始開發鴨霸獸的協助
感謝悠子(victor324)開放的原始碼
願一切榮耀歸于 李孟儒