LINE Notify 功能即將關閉,可改用免費的 Telegram 機器人收發訊息
Telegram bot 比 LINE Notify 稍麻煩的是申請新的機器人的步驟
step1 申請一隻 Telegram bot
**以電腦版為例 (手機版本的操作 皆相同)
將 BotFather 這隻機器人加為好友
按這裡 BotFather https://t.me/BotFather 即可加朋友
或將 @BotFather 加為朋友
加入後,會顯示 BotFather 的基本功能
輸入 /newbot 即可開始申請一隻機器人bot
過程如下:
上圖中,兩個重點: https://t.me/mybox001_bot
這是機器人的網址,自己要先點這個網址 加入這個機器人
7737191024:AAFE5R2CpVz6hqqjwah6lvWhNWYXFQ....
這是機器人的 API 存取 token
查詢自己的 chat id
將 @chat_id_echo_bot 加為朋友
即可看到自己的 chat id (用戶編號)
幫你的 bot 設定大頭貼 (icon)
輸入 /setuserpic
再上傳一張 JPG 或 PNG 圖片:
step2 如何發訊息到 telegram bot
方法一:最簡單,直接在瀏覽器
https://api.telegram.org/bot7737191024:AAFE5R2CpVz6hqqjwah6lvWhNWYXFQ/sendMessage?chat_id=716660000&text=HelloWorld
方法二:用 Arduino 發訊息到 Telegram bot 範例程式
以純 http post 方式發送訊息到 Telegram bot
先安裝 ArduinoHttpClient 這個程式庫
範例:
#include <WiFi.h> #include <ArduinoHttpClient.h> // Initialize Wifi connection to the router char ssid[] = "iot5"; //wifi名稱 char pass[] = "hello!!!"; //wifi密碼 int status = WL_IDLE_STATUS; //Bot Teken const char* BOT_TOKEN = "7737191024:AAFE5R2CpVz6hqqjwah6lvWhNW....."; WiFiSSLClient wifi; HttpClient http_client = HttpClient(wifi, "api.telegram.org", 443); int msg_sended = 0; void setup() { Serial.begin(115200); // 連接 wift while (status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(2000); } Serial.println("WiFi connected"); // print the SSID of the network you're attached to: Serial.print("SSID: "); Serial.println(WiFi.SSID()); // print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); // 連接 wifi 完成......... } void loop() { if (msg_sended == 0) { //---------------------------------- //發送一則訊息 給 74369xxxx 這個user String chat_id = "7436xxxxx"; String message = "你好,這是測試"; String uri = "/bot" + String(BOT_TOKEN) + "/"; String contentType = "application/x-www-form-urlencoded"; String postData = "method=sendMessage&text="+ message + "&chat_id="+chat_id; http_client.post(uri, contentType, postData); // read the status code and body of the response int statusCode = http_client.responseStatusCode(); String response = http_client.responseBody(); Serial.println(statusCode); Serial.println(response); msg_sended = 1; } }
發送訊息的結果:
這兒有個蠻有趣的機器人應用:
用Telegram打造自己的監控機器人-IoT 智慧生活的異想世界
參考資料;
Ardteleg資料發送
恩~~但多數人還是用賴XD
攤手