איך לארח בוט Telegram
בעמוד זה
בוט Telegram עונה רק כל עוד הקוד שלו רץ. אם בונים אותו על המחשב הנייד, הוא משתתק ברגע שהמחשב נכנס למצב שינה — כך שבמוקדם או במאוחר כל בוט צריך בית שנשאר דלוק.
המדריך הזה מכסה את כל הדרך: יצירת הבוט עם BotFather, בחירה בין polling ל-webhooks, דוגמה עובדת ב-Python וב-JavaScript, המגבלות והכללים ש-Telegram קובעת, ואיך לשמור על הבוט מחובר 24/7.
שלב 1: יוצרים את הבוט עם BotFather
- ב-Telegram, פתחו את @BotFather ושלחו
/newbot. - תנו לבוט שם תצוגה, ואחר כך שם משתמש: 5 עד 32 תווים, אותיות לטיניות, ספרות וקווים תחתונים, שמסתיים ב-
bot— למשלmy_shop_helper_bot. - BotFather משיב עם הטוקן, שנראה כך:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. מי שמחזיק בו שולט בבוט שלכם, אז השאירו אותו מחוץ לקוד ולעולם אל תשתפו אותו. אם הוא דלף, שלחו/tokenל-BotFather כדי לקבל טוקן חדש.
עוד שתי פקודות של BotFather שכדאי להכיר: /setcommands מוסיפה את רשימת הפקודות שמשתמשים רואים כשהם מקלידים /, ו-/setprivacy קובעת מה הבוט רואה בקבוצות. כברירת מחדל מצב הפרטיות פעיל, כך שבקבוצה הבוט מקבל רק פקודות שמיועדות לו ותגובות להודעות שלו — אלא אם תהפכו אותו למנהל.
Polling או webhooks?
בוט מקבל את ההודעות שלו מ-Telegram באחת משתי דרכים — אף פעם לא בשתיהן בו-זמנית:
| Long polling | Webhook | |
|---|---|---|
| איך זה עובד | הבוט שואל את Telegram שוב ושוב על הודעות חדשות דרך חיבור פתוח אחד | Telegram שולחת כל עדכון לכתובת ה-HTTPS שלכם |
| דרישות | גישה יוצאת לאינטרנט בלבד | דומיין, תעודה תקפה ופורט 443, 80, 88 או 8443 |
| מתאים ל | כמעט כל בוט, והכי קל לאירוח | בוטים עמוסים מאוד או פלטפורמות serverless |
התחילו עם polling. הוא לא דורש דומיין, תעודה או פורט פתוח, וכל ספרייה תומכת בו. אם אי פעם הוגדר webhook על הטוקן, קראו קודם ל-deleteWebhook — polling לא עובד כל עוד webhook פעיל.
בוטים עם polling רצים באירוח הבוטים של HytHost בלי דומיין או פורט פתוח להגדיר — Python או Node.js החל מ-€0.89 לחודש.
לחבילות אירוח הבוטיםשלב 2א: בוט ב-Python (python-telegram-bot)
python-telegram-bot 22 דורש Python 3.10 ומעלה. התקינו אותו עם pip install python-telegram-bot וצרו את bot.py:
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hi! Send me a message and I will echo it.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(update.message.text)
def main() -> None:
application = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
aiogram 3 היא האפשרות הפופולרית השנייה ב-Python, גם היא על Python 3.10 ומעלה.
שלב 2ב: בוט ב-JavaScript (grammY)
grammY היא מסגרת ה-Telegram ל-Node.js שמתוחזקת באופן פעיל. הריצו npm install grammy וצרו את bot.js:
const { Bot } = require("grammy");
const bot = new Bot(process.env.TELEGRAM_TOKEN);
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
bot.on("message:text", (ctx) => ctx.reply(ctx.message.text));
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
bot.start();
מדריכים ישנים משתמשים ב-Telegraf, שלא יצאה לו גרסה מאז פברואר 2024; לבוט חדש, grammY היא הבחירה הבטוחה יותר.
המגבלות והכללים של Telegram לבוטים
מגבלות לפי שאלות ותשובות הבוטים של Telegram:
- בערך הודעה אחת בשנייה בצ'אט בודד, 20 הודעות בדקה בקבוצה, ובערך 30 הודעות בשנייה בסך הכול.
- קבצים: הבוט יכול לשלוח עד 50 MB ולהוריד עד 20 MB.
- רק עותק אחד של הבוט יכול לבצע polling בכל רגע. עותק שני יקבל Conflict: terminated by other getUpdates request — השתמשו בטוקן נפרד לבדיקות.
כללים: תנאי Telegram למפתחי בוטים אוסרים ספאם, הודעות שלא התבקשו ועקיפת מגבלות הקצב. בוט חייב מדיניות פרטיות (המדיניות הסטנדרטית של Telegram חלה אם לא כתבתם משלכם) וחייב למחוק את נתוני המשתמש כשהוא מבקש. אוטומציה של חשבון אישי במקום בוט — מה שנקרא userbot — היא דבר שונה לגמרי, ו-Telegram חוסמת חשבונות שמשמשים להצפה או לספאם.
אירוח בוטים של Telegram ב-HytHost
חבילות אירוח הבוטים שלנו מריצות בוטים של Telegram בדיוק כמו בוטים של Discord:
- בחרו חבילה וסביבת ריצה — Python עבור python-telegram-bot או aiogram, Node.js עבור grammY. בחרו Python 3.10 ומעלה, או גרסה עדכנית של Node.js, בלשונית Startup.
- העלו את הקוד דרך מנהל הקבצים או SFTP, יחד עם
requirements.txtאוpackage.json. - שימו את הטוקן בקובץ
.envאו במשתנה סביבה, לא בקוד. - הפעילו אותו. עם polling הבוט לא צריך דומיין או פורט פתוח; הפאנל מפעיל אותו מחדש אם הוא קורס.
מה הכללים שלנו מתירים: בוטים שבנויים על ה-Bot API הרשמי עם טוקן מ-BotFather. אסור: userbots שמבצעים אוטומציה לחשבון אישי, הודעות המוניות שלא התבקשו, איסוף נתונים (scraping) של משתמשים או קבוצות, ובוטים שמורידים ומעבירים הלאה מדיה בלי הזכויות עליה. בוט שמפר את הכללים האלה מושעה.
החבילות כוללות מסד נתונים MySQL וגיבויים. בונים גם בוט Discord? ראו איך ליצור בוט Discord.
שמרו על בוט ה-Telegram שלכם מחובר 24/7 בלי המחשב שלכם: אירוח בוטים ב-Python או Node.js החל מ-€0.89 לחודש, כולל הפעלות מחדש.
לחבילות אירוח הבוטיםשאלות נפוצות
אפשר להריץ אותו על המחשב שלכם בחינם, אבל הוא ינותק בכל פעם שהמחשב נכנס לשינה או מופעל מחדש. שכבות ענן חינמיות משהות לעיתים קרובות אפליקציות לא פעילות או מגבילות את השימוש בהן. לבוט שנשאר מחובר, אירוח בתשלום קטן הוא האפשרות האמינה.
Polling כמעט לכל בוט: הוא לא דורש דומיין, תעודה או פורט פתוח. Webhooks מתאימים לבוטים עמוסים מאוד או לפלטפורמות serverless, ודורשים HTTPS על פורט 443, 80, 88 או 8443. טוקן אחד לא יכול להשתמש בשניהם בו-זמנית.
שלחו /token ל-@BotFather ובחרו את הבוט כדי לקבל טוקן חדש, ואז עדכנו אותו בכל מקום שבו הבוט רץ. שמרו את הטוקן במשתנה סביבה או בקובץ .env, לעולם לא בקוד שאתם משתפים.
שני עותקים של הבוט מבצעים polling עם אותו טוקן, למשל אחד על המחשב שלכם ואחד על השרת. עצרו אחד מהם, והשתמשו בבוט ובטוקן נפרדים לבדיקות.
מעט מאוד. בוט Python או Node.js טיפוסי שעונה לפקודות רץ בדרך כלל בלי בעיה על 512 MB; בוטים שמעבדים תמונות או מחזיקים כמויות גדולות של נתונים בזיכרון צריכים יותר.
בוט ה-Telegram שלכם, מחובר 24/7
אירוח הבוטים של HytHost מריץ את בוט ה-Telegram שלכם ב-Python או Node.js עם הפעלה מחדש אוטומטית, מסד נתונים MySQL וגיבויים — החל מ-€0.89 לחודש.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursהמדריך הזה עזר לך?