กลับไปที่บล็อก
Guides

สร้างบอท Telegram ตัวแรกของคุณ: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา

คู่มือฉบับปฏิบัติสำหรับการใช้งาน Telegram Bot API: ตั้งแต่การรับโทเค็นจาก BotFather, การเรียกใช้ sendMessage และ getUpdates, การตั้งค่า webhook, การจัดการข้อจำกัดด้านความเร็ว, ไปจนถึงการเปิดตัวบอทตัวแรกของคุณ

สร้างบอท Telegram ตัวแรกของคุณ: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา

คู่มือ Telegram Bot API ที่เร็วที่สุดเริ่มต้นด้วยสามคำสั่ง: รับโทเค็นจาก BotFather, เรียกใช้ getUpdates เพื่ออ่านข้อความ, และเรียกใช้ sendMessage เพื่อตอบกลับ ทุกอย่างในการพัฒนาบอทต่อจากนั้นก็สร้างขึ้นบนวงจรนี้ คู่มือนี้จะพาคุณไปตลอดเส้นทาง ตั้งแต่การส่งคำขอ cURL ครั้งแรก ไปจนถึงบอทที่ทำงานได้พร้อม webhook และไลบรารี

Bot API เป็นอินเทอร์เฟซ HTTP ซึ่งหมายความว่าคุณสามารถทดสอบได้ด้วย curl ก่อนที่คุณจะเขียนโค้ดแอปพลิเคชันแม้แต่บรรทัดเดียว ทำให้เป็นหนึ่งใน API ที่เรียนรู้ได้ง่าย หากคุณเป็นนักพัฒนาที่ต้องการบอทที่ใช้งานได้จริงในวันนี้ หรือเป็นผู้สร้างที่กำลังพิจารณาการเขียนโค้ดเทียบกับแพลตฟอร์ม no-code อย่าง TeleClaw คุณมาถูกที่แล้ว

เมื่อจบคู่มือนี้ คุณจะเข้าใจวิธีการยืนยันตัวตนของ API, วิธีการรับและส่งข้อความ, ความแตกต่างระหว่าง long polling และ webhooks, และข้อจำกัดด้านความเร็วที่มักจะทำให้บอทตัวแรกของคุณสะดุด

ประเด็นสำคัญ

  • บอทก็คือไคลเอนต์ HTTP. ทุกเมธอดคือคำขอไปยัง https://api.telegram.org/bot<TOKEN>/METHOD_NAME ดังนั้น cURL ก็เพียงพอที่จะเริ่มต้น
  • สามเมธอดหลักที่ทำให้คุณเริ่มใช้งานได้: getMe เพื่อยืนยันโทเค็น, getUpdates เพื่ออ่านข้อความ, และ sendMessage เพื่อตอบกลับ
  • Long polling และ webhooks ไม่สามารถใช้ร่วมกันได้. ใช้ polling สำหรับการทดสอบในเครื่อง และเปลี่ยนไปใช้ webhook สำหรับการใช้งานจริง
  • API ใช้งานฟรี แต่ Telegram จำกัดการส่งข้อความจำนวนมากไว้ที่ประมาณ 30 ข้อความต่อวินาทีไปยังผู้ใช้ที่แตกต่างกัน และหนึ่งข้อความต่อวินาทีต่อแชท
  • ไลบรารีช่วยประหยัดเวลา เมื่อบอทของคุณเติบโตเกินกว่าสคริปต์ ใช้ python-telegram-bot, aiogram, หรือ Telegraf

Telegram Bot API คืออะไร?

Telegram Bot API คืออินเทอร์เฟซที่ใช้ HTTP สำหรับเชื่อมต่อโค้ดของคุณเข้ากับ Telegram ผ่านบอท ตาม คำแนะนำสำหรับนักพัฒนา ของ Telegram บอทเป็นบัญชีพิเศษที่ไม่ต้องใช้หมายเลขโทรศัพท์ และทำหน้าที่เป็นอินเทอร์เฟซสำหรับโค้ดที่ทำงานบนเซิร์ฟเวอร์ของคุณ

ทุกคำขอที่คุณส่งจะถูกยืนยันตัวตนด้วยโทเค็นบอท แทนที่จะเป็นบัญชีผู้ใช้ โทเค็นนี้ระบุตัวตนของบอท ดังนั้นคุณควรเก็บรักษาไว้เหมือนรหัสผ่านและไม่ควรนำไปเก็บไว้ใน public repository เอกสารของ Telegram ระบุไว้อย่างชัดเจนว่า: เก็บโทเค็นของคุณไว้ในที่ปลอดภัยและอย่าแบ่งปัน

ตัว API เองนั้นฟรี Telegram ได้ให้บริการ Bot API ฟรีมาตั้งแต่เปิดตัว โดยไม่มีค่าธรรมเนียมต่อข้อความและไม่จำกัดจำนวนบอทที่คุณสร้าง นั่นคือเหตุผลว่าทำไมเครื่องมือชุมชน, ผู้ช่วยสนับสนุน, และระบบอัตโนมัติจำนวนมากจึงทำงานบนแพลตฟอร์มนี้ หากคุณเพิ่งเริ่มต้นใช้งานแพลตฟอร์มนี้ คู่มือของเราเกี่ยวกับ วิธีสร้าง Telegram bot จะครอบคลุมการตั้งค่าบัญชีในรายละเอียดเพิ่มเติม

ขั้นตอนที่ 1: รับโทเค็นบอทจาก BotFather

เปิด Telegram แล้วค้นหา @BotFather ซึ่งเป็นบอทอย่างเป็นทางการสำหรับสร้างและจัดการบอทอื่นๆ เริ่มการสนทนาและส่งคำสั่ง /newbot

BotFather จะถามสองสิ่งตามลำดับ:

  1. ชื่อที่แสดงสำหรับบอทของคุณ เช่น “First API Bot”
  2. ชื่อผู้ใช้ที่ลงท้ายด้วย bot เช่น first_api_demo_bot

เมื่อคุณทำเสร็จ BotFather จะส่งโทเค็น API ที่มีลักษณะคล้าย 123456789:AAExampleTokenStringHere โทเค็นนี้เป็นข้อมูลรับรองเดียวที่คุณต้องการสำหรับส่วนที่เหลือของคู่มือนี้

ข้อควรระวัง: ใครก็ตามที่มีโทเค็นของคุณสามารถควบคุมบอทของคุณได้ เก็บไว้ในตัวแปรสภาพแวดล้อม ไม่ใช่ในซอร์สโค้ด หากรั่วไหล ให้ส่ง /revoke ไปยัง BotFather เพื่อรับโทเค็นใหม่

ขั้นตอนที่ 2: เรียกใช้เมธอด Bot API ครั้งแรกของคุณ

ก่อนที่จะเขียนโปรแกรมใดๆ ให้ยืนยันว่าโทเค็นใช้งานได้ เมธอด getMe จะส่งคืนข้อมูลพื้นฐานเกี่ยวกับบอทของคุณและเป็นวิธีตรวจสอบสถานะมาตรฐาน แทนที่ <YOUR_TOKEN> ด้วยค่าที่คุณได้รับจาก BotFather

curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe

การตอบกลับที่สำเร็จจะเป็น JSON ที่มี "ok": true และ ID, ชื่อ, และชื่อผู้ใช้ของบอทของคุณ หากคุณเห็น "ok": false แสดงว่าโทเค็นผิดพลาดหรือมีข้อผิดพลาดในการพิมพ์

คำขอเดียวนี้คือรูปแบบทั้งหมด ทุกเมธอดของ Telegram Bot API มีรูปแบบเดียวกัน: การเรียก HTTPS ไปยัง https://api.telegram.org/bot<TOKEN>/METHOD_NAME โดยมีพารามิเตอร์อยู่ในสตริงคำค้นหาหรือเนื้อหา POST และส่งคืนออบเจกต์ JSON รายการทั้งหมดอยู่ใน เอกสารอ้างอิง Bot API ซึ่งบันทึกทุกเมธอดและออบเจกต์ที่คุณต้องการ

ขั้นตอนที่ 3: รับและส่งข้อความ

ตอนนี้มาทำให้บอทมีประโยชน์กัน มีกฎข้อหนึ่งที่ทำให้ผู้เริ่มต้นประหลาดใจ: บอทไม่สามารถเริ่มการสนทนาได้ ผู้ใช้ต้องส่งข้อความถึงบอทก่อน ดังนั้นเปิดบอทของคุณใน Telegram แล้วส่งข้อความใดๆ เช่น “hello”

ถัดไป ให้อ่านข้อความนั้นด้วย getUpdates ซึ่งจะดึงข้อมูลอัปเดตที่เข้ามาโดยใช้ long polling และส่งคืนอาร์เรย์ของออบเจกต์อัปเดต

curl https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates

ในการตอบกลับ ให้ค้นหา message.chat.id chat_id นั้นคือที่อยู่ที่คุณจะตอบกลับ คัดลอกแล้วเรียกใช้ sendMessage:

curl -X POST https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage \
 -d chat_id=<CHAT_ID> \
 -d text="Hello from my first bot"

บอทของคุณจะตอบกลับในแชท วงจรการอ่านด้วย getUpdates และตอบกลับด้วย sendMessage นี้คือแกนหลักเบื้องหลังบอท Telegram ส่วนใหญ่ พารามิเตอร์ text รับข้อความได้สูงสุด 4096 ตัวอักษร ดังนั้นข้อความตอบกลับที่ยาวจะต้องถูกแบ่งออก

สองรายละเอียดที่ต้องจำเมื่อคุณขยายตัวอย่าง Telegram bot API นี้ไปสู่โค้ดจริง:

  • คำนวณ offset ใหม่ ส่ง update_id ของอัปเดตล่าสุดบวกหนึ่งเป็นพารามิเตอร์ offset ในการเรียก getUpdates ครั้งถัดไปของคุณ มิฉะนั้น Telegram จะส่งคืนอัปเดตเดิมซ้ำๆ
  • ทีละเมธอดเท่านั้น getUpdates จะหยุดทำงานทันทีที่คุณลงทะเบียน webhook ซึ่งเป็นหัวข้อของขั้นตอนถัดไป

ขั้นตอนที่ 4: เลือกระหว่าง Long Polling หรือ Webhook

Telegram มีสองวิธีในการรับการอัปเดต และคุณสามารถใช้วิธีใดวิธีหนึ่งเท่านั้นต่อบอทในแต่ละครั้ง

  • Long polling หมายถึงโค้ดของคุณเรียกใช้ getUpdates ซ้ำๆ เป็นวิธีที่ง่ายที่สุดสำหรับการเรียนรู้และการพัฒนาในเครื่อง เพราะไม่จำเป็นต้องมี URL สาธารณะ เพียงแค่มีกระบวนการที่ทำงานอยู่ตลอดเวลา
  • Webhooks หมายถึง Telegram จะส่งการอัปเดตแต่ละรายการไปยังปลายทาง HTTPS ของคุณในรูปแบบคำขอ POST ทันทีที่เกิดขึ้น นี่คือมาตรฐานสำหรับการใช้งานจริง: ความหน่วงต่ำ ไม่มีการ polling ที่ไม่ได้ใช้งาน และปรับขนาดได้ดีขึ้นภายใต้การรับส่งข้อมูลที่คงที่

หากต้องการเปลี่ยนไปใช้ webhook ให้ลงทะเบียน URL HTTPS สาธารณะของคุณเพียงครั้งเดียว:

curl "https://api.telegram.org/bot<YOUR_TOKEN>/setWebhook?url=https://yourdomain.com/webhook"

ปลายทางของคุณต้องมีใบรับรอง TLS ที่ถูกต้องและต้องส่งคืน HTTP 200 อย่างรวดเร็ว หากการอัปเดตหยุดมาถึง สิ่งแรกที่ต้องทำคือตรวจสอบข้อผิดพลาด สำหรับขั้นตอนการลงทะเบียน การยืนยัน และการแก้ไขปัญหาทั้งหมด โปรดดู คู่มือการตั้งค่า Telegram bot webhook ของเรา สรุปสั้นๆ คือ: เริ่มต้นด้วย polling ในขณะที่คุณสร้าง และย้ายไปใช้ webhook ก่อนที่คุณจะเปิดตัว

ขั้นตอนที่ 5: ใช้ไลบรารีเพื่อจัดการ API

การใช้ cURL แบบดิบๆ นั้นยอดเยี่ยมสำหรับการเรียนรู้ แต่บอทที่ใช้งานจริงจะใช้ไลบรารี ไลบรารีจะจัดการการเรียก API, การแยกวิเคราะห์การอัปเดต, การลองใหม่, และสถานะการสนทนา ดังนั้นคุณจึงเขียนเฉพาะตรรกะเฉพาะของบอทของคุณเท่านั้น Telegram มีรายการไลบรารีชุมชนสำหรับเกือบทุกภาษาใน หน้าตัวอย่าง Bot API

เลือกตามภาษาที่คุณคุ้นเคยอยู่แล้ว:

  • Python: python-telegram-bot เป็น Python บริสุทธิ์, เป็นแบบ asynchronous เต็มรูปแบบ, และรองรับ Python 3.10 ขึ้นไป aiogram และ pyTelegramBotAPI เป็นทางเลือกยอดนิยม
  • Node.js: Telegraf เป็นไลบรารีที่สมบูรณ์และรองรับ TypeScript ได้ดี node-telegram-bot-api เป็นตัวเลือกที่มีมานาน

นี่คือบอท echo ตัวเดียวกันใน Python ซึ่งเป็นจุดเริ่มต้นที่พบบ่อยที่สุดสำหรับคู่มือ Telegram bot API Python:

from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes

TOKEN = "YOUR_TOKEN"

async def echo(update: Update, context: ContextTypes. DEFAULT_TYPE):
 await update.message.reply_text(update.message.text)

app = Application.builder().token(TOKEN).build()
app.add_handler(MessageHandler(filters. TEXT & ~filters. COMMAND, echo))
app.run_polling()

และโค้ด Node.js ที่เทียบเท่ากันด้วย Telegraf:

import { Telegraf } from 'telegraf'

const bot = new Telegraf(process.env. BOT_TOKEN)
bot.on('text', (ctx) => ctx.reply(ctx.message.text))
bot.launch()

ทั้งสองทำหน้าที่เดียวกันกับวงจร cURL จากขั้นตอนที่ 3 แต่ใช้โค้ดเพียงไม่กี่บรรทัดและจัดการส่วนที่ยุ่งยากให้คุณ Maria นักพัฒนาแบ็กเอนด์ที่กำลังสร้างบอทสนับสนุน ได้เปลี่ยนจากการทดสอบ cURL มาใช้ python-telegram-bot ในช่วงบ่ายวันเดียว และมีตัวจัดการคำสั่งและปุ่มอินไลน์ที่ใช้งานได้ในวันเดียวกัน แนวคิดของ API ถูกนำมาใช้โดยตรงเนื่องจากไลบรารีเป็นเพียง wrapper บางๆ เหนือเมธอด HTTP เดียวกัน

ข้อจำกัดด้านความเร็วและโควต้าที่ควรรู้

API ใช้งานฟรี แต่ก็ไม่ได้ไร้ขีดจำกัด คำถามที่พบบ่อยเกี่ยวกับบอท ของ Telegram มีคำแนะนำที่ช่วยให้บอทของคุณไม่ถูกจำกัดความเร็ว

  • หนึ่งข้อความต่อวินาทีต่อแชท ในการสนทนาเดียว หลีกเลี่ยงการส่งข้อความเร็วกว่านั้น
  • ประมาณ 30 ข้อความต่อวินาทีโดยรวม เมื่อส่งไปยังผู้ใช้ที่แตกต่างกันจำนวนมาก หากเกินกว่านั้น คุณจะเริ่มได้รับ HTTP 429 “Too Many Requests”
  • ประมาณ 20 ข้อความต่อนาที ไปยังกลุ่มเดียวกัน

เมื่อการออกอากาศต้องการมากกว่านั้นจริงๆ คุณสามารถเปิดใช้งาน Paid Broadcasts ใน @BotFather ซึ่งจะเพิ่มขีดจำกัดเป็นประมาณ 1000 ข้อความต่อวินาที ข้อความที่เกิน 30 ข้อความต่อวินาทีฟรีจะมีค่าใช้จ่าย 0.1 Telegram Stars ต่อข้อความ บอทส่วนใหญ่ไม่จำเป็นต้องใช้สิ่งนี้ แต่ก็ดีที่จะรู้ว่ามีขีดจำกัดนี้อยู่ก่อนที่คุณจะออกแบบฟีเจอร์การแจ้งเตือน

เคารพข้อจำกัด 429 โดยการอ่านค่า retry_after ที่ Telegram ส่งคืนและหยุดชั่วคราวตามจำนวนวินาทีนั้น ไลบรารีจะจัดการสิ่งนี้ให้คุณ ซึ่งเป็นอีกเหตุผลหนึ่งที่จะต้องเปลี่ยนจากการส่งคำขอแบบดิบๆ เมื่อปริมาณการใช้งานของคุณเป็นจริง

ข้ามการเขียนโค้ด: บอท AI โดยไม่ต้องมีเซิร์ฟเวอร์

ไม่ใช่ทุกโปรเจกต์ที่ต้องมีโค้ดเบสที่กำหนดเอง หากเป้าหมายของคุณคือผู้ช่วย AI ในกลุ่ม Telegram, Bot API อาจเป็นส่วนที่คุณไม่อยากดูแลเอง โดยเฉพาะอย่างยิ่งการโฮสติ้ง, HTTPS, และเลเยอร์ webhook

TeleClaw เป็นแพลตฟอร์มแบบ no-code ที่รันบอทให้คุณและเชื่อมต่อ Claude AI ได้ทันที คุณเพียงแค่เพิ่ม @claw เข้าไปในกลุ่มของคุณ, คัดลอกโทเค็น BotFather ของคุณลงในแดชบอร์ด, และกำหนดค่าพฤติกรรมโดยไม่ต้องแตะ setWebhook หรือจัดการข้อจำกัดด้านความเร็ว Tomas ผู้ดูแลชุมชนคริปโตที่มีสมาชิก 4,000 คน ได้เปลี่ยนบอทที่สร้างเองที่ยังไม่เสร็จสิ้นมาใช้ TeleClaw และมีระบบ AI moderation และคำตอบ FAQ ใช้งานได้ในคืนเดียวกัน

มันคือ Bot API ตัวเดียวกันที่อยู่เบื้องหลัง คุณกำลังเลือกว่าจะจัดการเลเยอร์เซิร์ฟเวอร์ด้วยตัวเอง หรือจะให้แพลตฟอร์มจัดการให้ สำรวจสิ่งที่ครอบคลุมใน หน้าคุณสมบัติของ TeleClaw และเปรียบเทียบตัวเลือกใน บทสรุปบอท Telegram ที่ดีที่สุด ของเรา สำหรับการสร้างด้วยแดชบอร์ดล้วนๆ โปรดดู คู่มือการสร้างแชทบอท Telegram แบบ no-code ของเรา

สรุป

ตอนนี้คุณมีโมเดลความคิดที่ใช้งานได้ของ Telegram Bot API แล้ว: โทเค็นจาก BotFather, เมธอด HTTP เช่น getMe, getUpdates, และ sendMessage, ทางเลือกระหว่าง long polling และ webhooks, และไลบรารีที่จะรวมทุกอย่างเข้าด้วยกันเมื่อบอทของคุณเติบโต API นั้นฟรี มีเอกสารประกอบที่ดี และเข้าถึงได้ง่ายพอที่จะทดสอบด้วย cURL ได้ในไม่กี่นาที

ขั้นตอนต่อไปที่เร็วที่สุดคือขั้นตอนที่เล็กที่สุด เปิด @BotFather, รัน /newbot, และส่งคำขอ getMe ครั้งแรกเพื่อยืนยันโทเค็น จากนั้นคุณสามารถสร้างใน Python หรือ Node หรือข้ามเซิร์ฟเวอร์ไปเลย หากต้องการเปิดตัวบอทที่ขับเคลื่อนด้วย AI ในไม่กี่นาทีแทนที่จะเป็นวัน ให้เพิ่ม @claw เข้าไปในกลุ่มของคุณและกำหนดค่าใน แดชบอร์ด TeleClaw

FAQ

คำถามที่พบบ่อย

ฉันจะใช้ Telegram Bot API ได้อย่างไร?
ส่งข้อความหา @BotFather, พิมพ์ /newbot, แล้วคัดลอกโทเค็นที่ได้รับ จากนั้นเรียกใช้เมธอดใดๆ ผ่านคำขอ HTTPS ไปยัง https://api.telegram.org/bot<TOKEN>/METHOD_NAME เริ่มต้นด้วย getMe เพื่อยืนยันว่าโทเค็นใช้งานได้, getUpdates เพื่ออ่านข้อความขาเข้า, และ sendMessage เพื่อตอบกลับ เมื่อโค้ดของคุณซับซ้อนขึ้น ให้เปลี่ยนจากการทำ long polling ไปใช้ webhook และเพิ่มไลบรารีเช่น python-telegram-bot หรือ Telegraf
Telegram Bot API คืออะไร?
Telegram Bot API คืออินเทอร์เฟซ HTTP ที่ช่วยให้โค้ดของคุณสามารถส่งและรับข้อความ Telegram ผ่านบัญชีบอทได้ บอทเป็นบัญชีพิเศษที่ไม่ต้องใช้หมายเลขโทรศัพท์ และทำหน้าที่เป็นส่วนหน้าสำหรับโค้ดที่ทำงานบนเซิร์ฟเวอร์ของคุณ คุณต้องยืนยันตัวตนทุกคำขอด้วยโทเค็นบอทจาก BotFather และ Telegram จะส่งการตอบกลับในรูปแบบ JSON ที่คุณสามารถแยกวิเคราะห์ได้ในทุกภาษา
Telegram Bot API ใช้งานฟรีหรือไม่?
ใช่ Telegram ให้คุณใช้ Bot API ได้ฟรี โดยไม่มีค่าธรรมเนียม API ต่อข้อความ และไม่จำกัดจำนวนบอทที่คุณสร้าง ค่าใช้จ่ายจริงของคุณคือค่าโฮสติ้ง (VPS ขนาดเล็กสามารถรันบอทง่ายๆ ได้ในราคาไม่กี่ดอลลาร์ต่อเดือน) และ API ของ AI ที่คุณเชื่อมต่อ ฟีเจอร์ Paid Broadcasts ที่เป็นทางเลือกจะใช้ได้เฉพาะเมื่อคุณส่งข้อความมากกว่า 30 ข้อความต่อวินาทีไปยังผู้ใช้ที่แตกต่างกัน
ฉันควรเรียนรู้ Telegram Bot API ด้วย Python หรือ Node.js?
ทั้งสองภาษาสามารถใช้งานได้ดี ดังนั้นให้เลือกภาษาที่คุณคุ้นเคยอยู่แล้ว นักพัฒนา Python มักจะเริ่มต้นด้วย python-telegram-bot หรือ aiogram ซึ่งทั้งคู่เป็นแบบ async เต็มรูปแบบ ส่วนนักพัฒนา Node.js จะเลือกใช้ Telegraf ซึ่งรองรับ TypeScript ได้ดี หรือ node-telegram-bot-api ไลบรารีเหล่านี้ทั้งหมดจะครอบคลุมเมธอด HTTP เดียวกัน ดังนั้นแนวคิดในคู่มือนี้จึงสามารถนำไปใช้ได้โดยตรงระหว่างกัน
ฉันจำเป็นต้องมีเซิร์ฟเวอร์เพื่อรัน Telegram bot หรือไม่?
สำหรับโค้ดที่กำหนดเอง ใช่ การทำ Long polling ต้องมีกระบวนการที่ทำงานอยู่ตลอดเวลา และ webhooks ต้องมีปลายทาง HTTPS ที่มีใบรับรองที่ถูกต้อง หากคุณต้องการบอท AI โดยไม่ต้องจัดการเซิร์ฟเวอร์ แพลตฟอร์มแบบ no-code เช่น TeleClaw จะโฮสต์บอทให้คุณ จัดการการส่งอัปเดต และเชื่อมต่อ Claude AI ให้คุณ คุณเพียงแค่คัดลอกโทเค็น BotFather ของคุณและกำหนดค่าพฤติกรรมในแดชบอร์ด
บทความเพิ่มเติม

อ่านต่อ