筆者發現, https 協議 在使用上還存在不少問題待解, 下面將說明筆者之前使用webhook 遇到的雷該如何拆解及避開. 另外, 將有一個簡單的實作, 題目如右: ESP x MicroPython x heroku x Line notify
import urequests
res = urequests.get('http://micropython.org/ks/test.html')
3. 將數值透過POST餵給後端server
urequests.post(url, payload=data)
類別一
data = {'table':'1','chair':'2'}
類型二
data = "{'table':'1','chair':'2'}"
[秘訣]
(1) micropython 將payload中的data視為字串而非dict, 記得要注意這個不同的形態
(2) 一般使用request 在上傳資料後, 後端取資料的方式是下面這樣, 但micropython 並不是
token = request.form['token']
msg = request.form['msg']
[實作] 使用ESP裝置的MicroPython 發送通知給使用者 (利用Line notify)
(1) 這個實作總共會拆成三個部分:
(2) Line notify 及Line Message API (push message) 差別如下:
[正文開始]
curl https://cli-assets.heroku.com/install.sh | sh
heroku --version
heroku/7.18.5 linux-x64 node-v11.0.0
$ heroku login
Enter your Heroku credentials.
Email: (input your email address that you sign up)
Password (typing will be hidden):
Login in as xxx@xxx.com
(1) 建立
heroku create [project name]
* project name 可空白, 會自動assign 一個名字
Creating ⬢ wbln... done
https://wbln.herokuapp.com/ | https://git.heroku.com/wbln.git
(2) 查看
$ heroku list
=== XXX@xxx.com Apps
wbln
* 列出剛剛筆者創建的app
(3) 完整刪除APP的方式如下: (筆者創建的名稱為wbln)
$ heroku apps:destroy --app wbln --confirm wbln
Destroying ⬢ wbln (including all add-ons)... done
git clone https://git.heroku.com/wbln.git
git add .
* 將修改過的檔案新增到暫存區
git command -m 'heroku app 1st version'
* 增加註解
git push origin master
* 將本地端的檔案推送到遠端
https://[heroku-app name].herokuapp.com/line?token=[line notify token]&message=[your message]
[秘訣] 筆者測試是以[透過1對1聊天接收LINE Notify] 做測試, 依照上面的操作可看到heroku APP 回傳OK代表收到, 而Line notify 也傳送hi 單詞 (代表測試成功)
13. 登入ESP裝置, 在Micropython 中使用urequests 測試是否可以使用
import urequests
>>> url = "https://wbln.herokuapp.com/line"
>>> token = "your line notiry token'
>>> msg = "your message that you want"
>>> msg = msg.replace(' ', '%20')
* 需要把空白字元使用'%20'取代, 否則會報錯
>>> payload = {'token':token, "message":msg}
>>> res = urequests.post(url+'?token='+token+'&message='+msg)
>>> print('response: ', r.text')
'OK'
>>> res.close()