檔案結構如下:
|-- bot 資料夾
|-- app.py
|-- ey_bot.py
網頁框架我是使用Flask,app.py就是進入點。
有關機器人的部分是分離出一個ey_bot.py。
先來看app.py的內容:
ACCESS_TOKEN與APP_SECRET記得更改成自己Bot開發者後台的Bot token > Keys。
下個部分是讓你測試看看連線是否正常,例如我是用Heroku,架起來之後瀏覽器輸入https://{HEROKU_APP_NAME}.herokuapp.com/到跟目錄,正常會出現ok!!!文字。
再來
當收到POST請求(傳訊息給機器人)後會先進行驗證,驗證訊息完整性和原始來源。
ey_bot.verify_webhook(request)
如果正確,接下來轉碼成utf-8後送入EyBot的respond函式。
主要有關機器人的程式碼放在ey_bot.py:
我是用Class(類別)實作。
一開始接收傳進來的ACCESS_TOKEN與APP_SECRET值。
verify_webhook是做webhook事件驗證
respond函式是接收到訊息後處理、回應
最一開始msg接收到的樣子如下:
{'botid': 'bot@178', 'time': 1566095036431, 'messaging': [{'sender_id': 'g919233', 'message': {'text': '你好'}}]}
我們擷取'messaging'中'sender_id'當成要回傳的id,而'messaging'中'message'的'text'及是使用者傳送過來的文字訊息。
回傳文字以及回傳貼圖的內容,我把它寫成函式reply_text和reply_sticker。(回傳圖片、特殊介面這邊就先不寫出來了)
這邊就以回傳同樣的文字及一張貼圖示範。
程式碼其餘的部分就不特別講解了。
最後架起來後記得去Bot開發者後台修改URL。
Bot token > Webhook
例如我是用Heroku,輸入https://{HEROKU_APP_NAME}.herokuapp.com/callback
實際測試~
哈哈姆特機器人串接官方資料