Send message to Telegram chat by Telegram bot
สวัสดีครับ ในวันนี้ผมจะมาพูดถึงวิธีการที่เราจะสร้าง bot ใน telegram เพื่อจะส่งข้อความบางอย่างให้เรา แต่ก่อนหลาย ๆ คนอาจจะใช้ตัว Line Notify เอาไว้ส่งข้อความ เข้า group Line หรือส่งส่วนตัว แต่ว่าตอนนี้ Line Notify ได้ปิดให้บริการไปเรียนร้อยแล้ว Telegram ก็จะเป็นทางเลือกอีกทางหนึ่ง ที่สำคัญคือเป็นบริการที่ฟรี ซึ่งคงเป็นตัวเลือกที่ดีที่จะใช้แทนตัว Line Notify
ในตัวอย่างนี้ผมจะใช้ Bun เป็นตัวอย่างในการส่งข้อความนะครับ
สิ่งที่ต้องเตรียมก่อนเริ่ม
- บัญชี Telegram
- Bun - Javascript runtime
วิธีทำ
-
สร้างบัญชี Telegram ผ่าน Application Telegram บน iOS, Android หรือ ผ่าน store ของ OS นั้น ๆ
-
หลังจากสมัครแล้ว น่าจะเห็นตามรูปด้านล่าง
-
ไปที BotFather แล้วใช้คำสั่ง `/newbot’ เพื่อสร้างบอทของตัวเอง แล้วใส่ชือที่อยากได้ลงไป
-
จากนั้นตั้ง username ของบอท โดยชื่อบอทต้องลงท้ายด้วย
Bot
หรือ_bot
-
เสร็จแล้วจะได้บอท token มา เราจะใช้ในการส่ง message อันจะเป็น secret ควรที่จะหาที่เก็บที่ปลอดภัย
-
ถ้าเราไปดูเอกสารของ Telegram API นอกจาก bot token แล้วเรายังต้องมีอีกอย่างนึงคือ chat id ซึ่งวิธีง่าย ๆ คือให้เรา search หาชื่อ bot ตัวเอง แล้วส่งข้อความอะไรก็ได้ลงไป จากนั้นให้ไปที่
https://api.telegram.org/bot<YourBOTToken>/getUpdates
แล้วเราจะได้ chat id มา -
พอได้ ิ bot token กับ chat id มาเรียบร้อย ตอนนี้ก็ถึงเวลาที่เรื่มทำตัวแอปที่ไว้ใช้ส่งข้อความ เมื่อเราลง bun และสร้างโปรเจคเสร็จเรียบร้อยแล้ว ให้แก้ไฟล์
index.ts
ตามนี้ (อย่าลืมแก้ botToken กับ chatId ด้วยนะครับ)const chatId = <chatId>; const botToken = "<botToken>"; const url = `https://api.telegram.org/bot${botToken}/sendMessage`; await fetch(url, { method: "POST", body: JSON.stringify({ text: "Hello, this is a test message from your bot!", chat_id: chatId, parse_mode: "HTML", }), headers: { "Content-Type": "application/json", }, }).catch((err: unknown) => { if (err instanceof Error) { console.log("telegram notify failed", err); } });
-
ใช้คำสั่ง
bun index.ts
จะได้ผลลัพธ์ตามนี้
อันนี้จะเป็นตัวโปรเจคเผื่อถ้ารันไม่ได้ยังไงก็สามารถโคลนตัวโค้ดจาก github นี้ไปได้เลยครับ