Python – Telegram 報訊機器人實戰教學 (2)

TG_bot_Featured_Pics

前言:

本文為聊天機器人報訊機器人文章的續集,主要帶大家實操程式碼,讓你複製貼上就能用。若你已經準備好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去打連結出去的時候,也不會出錯。

EZ2O

下面的程式碼,記得要放入 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嗎? 快到下面連結瞧瞧

https://core.telegram.org/bots/api#sendphoto

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *