DEV Community

Simplr
Simplr

Posted on

1 1 1 1 1

Telegram Bot Creation Handbook

This handbook outlines the process of creating Telegram bots using BotFather. It emphasizes accuracy, provides detailed explanations, and includes optional/required tagging for clarity.

1. Initiating the Bot Creation Process

  • Tool: Telegram application
  • Actor: You (the bot developer)
  • Prerequisite: A Telegram account.
  1. Open Telegram and Search for BotFather: In the Telegram search bar, type @BotFather. Verify that the account has a blue checkmark, indicating it's the official BotFather.

  2. Start a Chat with BotFather: Click on the BotFather account and initiate a chat by pressing the "Start" button.

  3. Issue the /newbot Command: Type /newbot in the chat and send it. BotFather will respond with:

    Alright, a new bot. How are we going to call it? Please choose a name for your bot.
    

2. Naming Your Bot

  • Requirement: Choose a name and a username for your bot.
  • Considerations:
    • Name: This is the display name of your bot (e.g., "My Awesome Bot").
    • Username: This is the unique identifier for your bot (e.g., "MyAwesomeBot"). It must end in bot or Bot.
  1. Provide the Bot Name: Type the desired name for your bot and send it. For example:

    My Awesome Bot
    

    BotFather will then ask for the username:

    Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
    
  2. Provide the Bot Username: Type the desired username for your bot, ensuring it ends with bot or Bot. For example:

    MyAwesomeBot
    

    If the username is available, BotFather will respond with a success message, including your bot's API token:

    Done! Congratulations on your new bot. You will find it at t.me/MyAwesomeBot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.
    Use this token to access the HTTP API:
    YOUR_API_TOKEN
    Keep your token secure and store it safely, it can be used by anyone to control your bot.
    
    For a description of the Bot API, see this page: https://core.telegram.org/bots/api
    

3. Securing and Storing the API Token

  • Critical: The API token is your bot's password. Keep it secret!
  • Best Practices:
    • Never commit the token to public repositories.
    • Use environment variables to store the token.
    • Restrict access to the token in your development environment.
  1. Store the API Token: Immediately copy the API token and store it securely. A common practice is to set it as an environment variable in your development environment:

    export TELEGRAM_BOT_TOKEN="YOUR_API_TOKEN"
    

    In a .env file (if using a library like dotenv):

    TELEGRAM_BOT_TOKEN=YOUR_API_TOKEN
    

4. Configuring Bot Settings (Optional)

BotFather provides several commands to configure your bot's settings. Here are some common ones:

  • /setname: Changes the bot's name.
  • /setdescription: Sets a description for the bot (visible on the bot's profile page).
  • /setabouttext: Sets the bot's "About" information (visible on the bot's profile page).
  • /setuserpic: Sets the bot's profile picture.
  • /setcommands: Defines a list of commands that users can access via the bot's menu.
  1. Setting a Description: To set a description, use the /setdescription command:

    /setdescription
    

    BotFather will prompt you to enter the description:

    OK. What's the new description for your bot?
    

    Enter the description:

    This bot provides awesome services.
    
  2. Setting Commands: To set commands, use the /setcommands command. This is crucial for usability. The format is:

    /setcommands
    

    BotFather will prompt you to enter the list of commands. Each command should be on a new line, with the command and its description separated by a hyphen:

    start - Start the bot
    help - Get help and usage instructions
    subscribe - Subscribe to updates
    unsubscribe - Unsubscribe from updates
    

    After sending this, users will see these commands in the bot's menu.

5. Developing Your Bot

  • Technology Stack: Choose your preferred programming language and Telegram Bot API library. TypeScript is highly recommended.
  • Libraries (TypeScript):
  1. Install node-telegram-bot-api:

    npm install node-telegram-bot-api --save
    npm install --save-dev @types/node-telegram-bot-api
    npm install --save-dev @types/node
    
  2. Basic Bot Implementation (TypeScript):

import TelegramBot from "node-telegram-bot-api";
import * as dotenv from "dotenv";

dotenv.config();

const token = process.env.TELEGRAM_BOT_TOKEN;

if (!token) {
  throw new Error("TELEGRAM_BOT_TOKEN is not defined in the environment.");
}

const bot = new TelegramBot(token, { polling: true });

bot.onText(/\/start/, (msg) => {
  const chatId = msg.chat.id;
  bot.sendMessage(
    chatId,
    "Welcome! Use /help to see available commands."
  );
});

bot.onText(/\/help/, (msg) => {
  const chatId = msg.chat.id;
  bot.sendMessage(
    chatId,
    "Available commands:\n/start - Start the bot\n/help - Show this help message"
  );
});

console.log("Bot is running...");
Enter fullscreen mode Exit fullscreen mode
  1. Explanation:
  • Import Statements: Imports the necessary modules.
  • Token Retrieval: Retrieves the API token from the environment variables.
  • Bot Instantiation: Creates a new TelegramBot instance with the token and enables polling to receive updates.
  • Command Handlers: Registers handlers for the /start and /help commands. When a user sends these commands, the corresponding function is executed, sending a message back to the user.
  • Error Handling: Checks if the token exists, throws an error if it doesn't.
  1. Running the Bot:

    npx ts-node your-bot-file.ts
    

6. Advanced Features and Considerations

  • Inline Keyboards: Create interactive buttons within messages.
  • Webhooks: Use webhooks for more efficient update delivery (recommended for production).
  • Database Integration: Store user data and bot state.
  • Error Handling: Implement robust error handling to catch and log exceptions.
  • Rate Limiting: Be mindful of Telegram's API rate limits.
  • Security: Sanitize user input to prevent injection attacks.

7. Deploying Your Bot

  • Platforms: Consider platforms like Heroku, AWS, Google Cloud, or a VPS.
  • Process Managers: Use a process manager like pm2 to keep your bot running.

8. Updating Your Bot

  • Continuous Integration/Continuous Deployment (CI/CD): Automate the deployment process.
  • Version Control: Use Git for version control.

References

This handbook provides a solid foundation for creating Telegram bots. Remember to consult the official Telegram Bot API documentation for the most up-to-date information and advanced features. Good luck!

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay