line-bot-Tutorial
教你建立自己的 line-bot 使用 python flask
line-bot-tutorial use python flask
oop 版本可參考 line-bot refactor use oop (design pattern),此版本為 functional programming。
執行畫面
請先加入好友
我的 QRCODE
或是手機直接點選 https://line.me/R/ti/p/%40vbi2716y
認證記得請選 同意
功能
精選功能
輸入任何文字即可開始玩
開始玩
新聞
蘋果即時新聞
apple news 即時新聞 ( 來源 http://www.appledaily.com.tw/realtimenews/section/new/ )
科技新報
科技新報 ( Tech News ) 最新文章 ( 來源 https://technews.tw/ )
PanX泛科技
PanX泛科技 最新文章 ( 來源 https://panx.asia/ )
電影
近期上映電影
近期上映的電影 ( 開眼電影網 ) ( 來源 http://www.atmovies.com.tw/movie/next/0/ )
eyny
eyny 電影版包含 Mega 以及 Google 標題的文章 ( 來源 http://www.eyny.com/forum-205-1.html )
觸電網-youtube
觸電網 ( youtube 預告 )
看廢文
近期熱門廢文
( 來源 http://disp.cc/b/PttHot )
即時廢文
即時八卦版廢文
( 來源 https://www.ptt.cc/bbs/Gossiping/index.html )
正妹
PTT 表特版 近期大於 10 推的文章
( 來源 https://www.ptt.cc/bbs/Beauty/index.html )
來張 imgur 正妹圖片
( 來源 ,自己的 imgur ,透過官方 api imgurpython 回傳圖片 )
隨便來張正妹圖片
( 來源 ,爬蟲 auto_crawler_ptt_beauty_image ,從資料庫取出圖片)
貼圖
如果傳任意貼圖,則會回傳任意有效貼圖 ( 目前我只有把官方 package_id 為 1 的 sticker_id 放在程式碼裡 ),
相關的 sticker_id 以及 package_id 可參考官網的 sticker_list.pdf。
希望這個 阿肥bot 能帶給大家歡樂,程式碼很多基本上就是簡單的爬蟲。
如果需要其他的功能,可以給小弟一點建議,我會盡量完成他。
油價查詢
分享 bot
如果你想要分享你的 bot 給別人,可以使用 https://line.me/R/nv/recommendOA/{LINE_id}
,
舉個例子,我的 bot 的 Line ID 為 @vbi2716y
,所以我就可以寫成如下,
https://line.me/R/nv/recommendOA/@vbi2716y
更多說明可參考 sharing-your-bot-account。
教學
請先到 https://business.line.me/zh-hant/ 這裡登入自己
原本的 line 帳號,然後點選 Messaging API
接下來你會看到 開始使用Messaging API 以及 開始使用Developer Trial
在這裡我們選 開始使用Messaging API
這兩個差別在哪裡呢? 可以到同一個頁面的下方觀看,基本上就只是方案不同而已
接著就是一些設定,點選 選擇公司/經營者
點選 新增公司/經營者
填寫一些資料
line bot 的 大頭貼 以及 名稱 設定
設定完後,請選擇 申請
以上設定應該不會有什麼問題
請選擇 開始使用 API
請選擇 確認
這些請注意, 選擇 允許 ,然後記得 儲存
點選 Line Developers
你會進入下面這個畫面,在這個畫面中,有兩個東西很重要,分別是
-
Channel Secret
-
Channel Access Token
Channel Secret
Channel Access Token
如果你看到的是空的,請點選 ISSUE 就會顯示了
請將你的 Channel Secret 以及 Channel Access Token
貼到 config.ini 底下 ( 如不了解 .ini 的使用方法,可參考 configparser_tutorial )
[line_bot]
Channel_Access_Token = YOUR_CHANNEL_SECRET
Channel_Secret = YOUR_CHANNEL_SECRET
更多資訊可參考 line-bot-sdk-python
接下來因為 Line Bot 需要 SSL憑證 ( https ),所以我直接使用 Heroku
如果不知道什麼是 Heroku 以及它的使用方法
請參考我之前寫的 Deploying-Flask-To-Heroku
佈署
如上圖,我的網址是 https://python-ine-bot.herokuapp.com/
接著我們要加入 Webhook URL ,請點選 EDIT ,並且加入你自己的網址,網址格式
https://{你的網址}/callback
舉例,我的網址就是
https://python-ine-bot.herokuapp.com/callback
輸入完之後,可以按 VERIFY ,如果你的 CODE 正確無誤,就會顯示 Success
不過我使用 line-bot-sdk-python當我按下 VERIFY,卻出現錯誤,不過是可以正常運作,所以暫時先不管他。
關於上述這個問題,可以到 issues 2 以及 issues 3 觀看說明。( 感謝熱心的網友 )
基本上到這裡就是完成了,趕快去加入自己的 line bot 玩玩看吧~
只要我有新的想法,我會同步更新在這篇文章, line bot 還有很多好玩的地方
使用 imgur 官方 api
透過 imgur 官方 api imgurpython ,
從自己的相簿隨機回傳一張正妹照片,
請到下方獲取自己的 CLIENT_ID , CLIENT_SECRET , 以及自己相簿的 album_id
並將自己的資料輸入在下方程式碼
client_id = 'YOUR_IMGUR_CLIENT_ID'
client_secret = 'YOUR_IMGUR__CLIENT_SECRET'
album_id = 'YOUR_IMGUR_ALBUM_ID'
更多詳細的介紹可參考 imgurpython
其他補充
只要有使用到網址,請記得一定都要用 https
舉例
image_message = ImageSendMessage(
original_content_url="https://example.com.img1.jpg",
preview_image_url="https://example.com.img1.jpg"
)
設定選單
有一些東西是必須到 line 的官網去設定的,像是下方的選單
請到 https://admin-official.line.me/ 選擇自己的 bot ,然後開始設定,
建立圖片影音內容 -> 圖文訊息選單 ( 如下圖 )
顯示設定,請選擇 反映,不然會沒有效果
接著選擇樣式,
記得,選單內容設定 全部都要設定,不然會沒有效果
最後,那個主要兩個字非常礙眼 ( 如下圖 )
我們可以從這裡把它關掉
帳號設定 -> 基本設定
將 行動官網選單 設定為 隱藏 即可
Heroku 注意事項
有些人可能會遇到佈署失敗的問題,可以試著將 runtime.txt 修改為 3.9.13
( 這個只要依照提示更新就行了 )
如果遇到 Upgrading to the Latest Stack,只需要到 Heroku 上修正後,重新佈署即可,可參考
Upgrading to the Latest Stack 以及 Stacks,
更新 stack 指令
heroku stack:set heroku-22 -a <app name>
之後再 commit push 一次就會自動 migrate 到新的 stack.
因為 gunicorn 的更新,現在需要將 Procfile 多加上 --preload
,也就是變成
web gunicorn app:app --preload
詳細可參考 Advanced configuration。
執行環境
- Python 3.9
Reference
Donation
文章都是我自己研究內化後原創,如果有幫助到您,也想鼓勵我的話,歡迎請我喝一杯咖啡
License
MIT license