前言:
本文為聊天機器人 – 報訊機器人文章的續集,主要帶大家實操程式碼,讓你複製貼上就能用。若你已經準備好Telegram / TG bot機器人並取得聊天群組內的chat_id可以繼續往下看。若你還沒看過第一篇,可點下面文章了解。
Python – Telegram 報訊機器人實戰教學 (1)
用python傳送文字到telegram機器人總是缺字-一個指令解決
本文章學習的架構如下
A. 在TG裡面申請機器人B. 開一個群組並取得chat_id- C. 立即傳文字訊息
- D. 加碼教你傳送照片
由於A跟B的部分在上一篇已經完成,接下來我們接續 C. D. 章節 。
C. 立即傳文字訊息
本次的教學程式碼都是使用Request套件直接透過http協定把URI打進去,所以記得要裝requests;同時你也可以直接把這段URI貼入任何一個瀏覽器,若你的字串正確,你要傳送的訊息一樣會出現在你的群組內。
#post results to TG
import requests
def telegram_bot_sendtext(bot_message):
bot_token = '<這裡改成你的 API token id 十碼數字>:<AAHa4gNDuUESbRAEvvLD8TCfIdR********>'
bot_chatID = '<這裡改成群組ID>'
send_text = 'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' + bot_message
response = requests.get(send_text)
return response.json()
toBeSendText="Test like a charm"
newMessage = telegram_bot_sendtext(toBeSendText)
print(toBeSendText)
#這樣就完成了,是不是超級簡單
只要把上面的字串跟你原本的爬蟲程式串接一下,當爬蟲爬完也能回報到你的工作到群組內。
D. 加碼教你傳送照片
這裡教大家的方法是直接使用網路上的圖片,也就是透過url去轉貼照片到群組。當然也能夠在本地直接傳照片到群組,但因為流量的關係,轉url是最好的方式。
再傳送之前,先把找到的照片複製連結,然後把連結url貼到下面的平台,並選擇轉碼為 Unicode,可以發現很多斜線空白等等特殊字元符號都被轉換過了,如此一來我們透過Requests去打連結出去的時候,也不會出錯。
下面的程式碼,記得要放入 API Token ,提醒一下裡面的 <>括號字元是不用放的喔。
import requests
def telegram_bot_sendphoto(bot_photo):
bot_token = '<這裡改成你的 API token id 十碼數字>:<AAHa4gNDuUESbRAEvvLD8TCfIdR********>'
bot_chatID = '<這裡改成群組ID>'
send_text = 'https://api.telegram.org/bot' + bot_token + '/sendPhoto?chat_id=' + bot_chatID + '&photo=' + bot_photo
response = requests.get(send_text)
return response.json()
toBeSendPhotoURL=r'轉換好的連結貼在這'
telegram_bot_sendphoto(toBeSendPhotoURL)
#若成功相片會直接出現在群組內
小結:
以上就完成了Telegram 聊天機器人實戰,可以拿來報訊、傳送照片/圖片,搭配爬蟲或其他程式,可以自己開發的程式執行狀態掌握度更高、也更即時。
未來有機會會跟大家分享更多延伸的應用功能,或是其他聊天機器人。
想知道更多功能的 TG API嗎? 快到下面連結瞧瞧