LINE Notify 功能即將關閉,可改用免費的 Telegram 機器人收發訊息
Telegram bot 比 LINE Notify 稍麻煩的是申請新的機器人的步驟
**以電腦版為例 (手機版本的操作 皆相同)
將 BotFather 這隻機器人加為好友
按這裡 BotFather https://t.me/BotFather 即可加朋友
或將 @BotFather 加為朋友
加入後,會顯示 BotFather 的基本功能
輸入 /newbot 即可開始申請一隻機器人bot
過程如下:
上圖中,兩個重點:
https://t.me/mybox001_bot
這是機器人的網址,自己要先點這個網址 加入這個機器人
7737191024:AAFE5R2CpVz6hqqjwah6lvWhNWYXFQ....
這是機器人的 API 存取 token
將 @chat_id_echo_bot 加為朋友
即可看到自己的 chat id (用戶編號)
輸入 /setuserpic
再上傳一張 JPG 或 PNG 圖片:
https://api.telegram.org/bot7737191024:AAFE5R2CpVz6hqqjwah6lvWhNWYXFQ/sendMessage?chat_id=716660000&text=HelloWorld
以純 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資料發送