Инструкция по созданию бота в botfather

This guide will walk you through everything you need to know to build your first Telegram Bot.
If you already know your way around some of the basic steps, you can jump directly to the part you’re missing. Equivalent examples are available in C#, Python, Go and TypeScript .

  • Introduction
  • Basic Tutorial
  • Environment
  • First Run
  • Echo Bot
  • Advanced Tutorial
  • Commands
  • Navigation
  • Database
  • Hosting
  • Further Reading

Introduction

At its core, you can think of the Telegram Bot API as software that provides JSON-encoded responses to your queries.

A bot, on the other hand, is essentially a routine, software or script that queries the API by means of an HTTPS request and waits for a response. There are several types of requests you can make, as well as many different objects that you can use and receive as responses.

Since your browser is capable of sending HTTPS requests, you can use it to quickly try out the API. After obtaining your token, try pasting this string into your browser:

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getMe

In theory, you could interact with the API with basic requests like this, either via your browser or other tailor-made tools like cURL. While this can work for simple requests like the example above, it’s not practical for larger applications and doesn’t scale well.
For that reason, this guide will show you how to use libraries and frameworks, along with some basic programming skills, to build a more robust and scalable project.

If you know how to code, you’ll fly right through each step in no time – and if you’re just starting out, this guide will show you everything you need to learn.

We will use Java throughout this guide as it’s one of the most popular programming languages, however, you can follow along with any language as all the steps are fundamentally the same.
Since Java is fully cross-platform, each code example will work with any operating system.
If you pick another language, equivalent examples are available in C#, Python, Go and TypeScript .

Getting Ready

First, we will briefly cover how to create your first project, obtain your API token and download all necessary dependencies and libraries.

For the purposes of this guide, a copy of the bot you will be creating is also live at @TutorialBot – feel free to check it out along the way to see how your own implementation should look after each step.

Obtain Your Bot Token

In this context, a token is a string that authenticates your bot (not your account) on the bot API. Each bot has a unique token which can also be revoked at any time via @BotFather.

Obtaining a token is as simple as contacting @BotFather, issuing the /newbot command and following the steps until you’re given a new token. You can find a step-by-step guide here.

Your token will look something like this:

4839574812:AAFD39kkdpWt3ywyRZergyOLMaJhac60qc

Make sure to save your token in a secure place, treat it like a password and don’t share it with anyone.

Download an IDE

To program in Java you’ll need an IDE – a special text editor that will let you write, compile and run your code.
In this tutorial, we’ll use IntelliJ – there are several free, open source alternatives like Eclipse or NetBeans which work in the exact same way.

You will also need a JDK, a software kit that allows your Java code to run.
Most IDEs don’t include a JDK, so you should download a version compatible with your operating system separately. You can find a free, open source version here.

If you use another language, the steps are identical. You will just have to download a different IDE and software development kit.

Pick a Framework or Library

You can think of a framework as software that handles all the low-level logic for you, including the API calls, and lets you focus on your bot-specific logic.

In this tutorial, we’ll use TelegramBots, but you can follow along with any equivalent implementation, since all the underlying methods are either similar or exactly the same.

You can find many frameworks, along with code examples, in our dedicated list.

Create Your Project

In IntelliJ, go to File > New > Project.

Fill in the fields accordingly:

  • Name — The name of your project. For example, BotTutorial.
  • Location — Where to store your project. You can use the default value.
  • Language — Java
  • Build System — The framework that will handle your dependencies. Pick Maven.
  • JDK — Pick whichever version you downloaded. We’ll be using version 17.
  • Add Sample Code — Leave this selected, it will generate some needed files for you.
  • Advanced Settings > GroupId — We suggest tutorial.
  • Advanced Settings > ArtifactId — You can use the default value.

After hitting Create, if you did everything correctly, your Project view in the top left should show a project structure along these lines:

BotTutorial
├─ .idea
├─ src
│  └─ main
│     └─ java
│        └─ tutorial
│           └─ Main
└─ pom.xml

Other IDEs will follow a similar pattern. Your dependency management system will have a different name (or no name at all if it’s built-in) depending on the language you chose.

If this looks scary, don’t worry. We will only be using the Main file and the pom.xml file.
In fact, to check that everything is working so far, double click on Main and click on the small green arrow on the left of public class Main, then select the first option.
If you followed the steps correctly, Hello world! should appear in the console below.

Add Framework Dependency

We will now instruct the IDE to download and configure everything needed to work with the API.
This is very easy and happens automatically behind the scenes.

First, locate your pom.xml file on the left side of the screen.
Open it by double-clicking and simply add:

<dependencies>
    <dependency>
        <groupId>org.telegram</groupId>
        <artifactId>telegrambots</artifactId>
        <version>6.0.1</version>
    </dependency>
</dependencies>

right after the </properties> tag.

When you’re done, your pom.xml should look something like this.

Start Coding

We are ready to start coding. If you’re a beginner, consider that being familiar with your language of choice will greatly help. With this tutorial, you’ll be able to teach your bot basic behaviors, though more advanced features will require some coding experience.

Creating a Bot Class

If you’re familiar with object-oriented programming, you’ll know what a class is.
If you’ve never heard of it before, consider a class as a file where you write some logic.

To create the class that will contain the bot logic, right click on tutorial from the project tree on the left and select New > Java Class. Name it Bot and hit enter.

Now we have to connect this class to the bot framework. In other words, we must make sure it extends TelegramLongPollingBot. To do that, just add extends TelegramLongPollingBot right after Bot.
A red line will appear – it simply means we’re missing some important methods.

To fix this, hover over the red line, click on implement methods, then hit OK.
Depending on the IDE, this option may be called implement missing methods or something similar.

You should end up with this – if something went wrong, feel free to copy it from here and paste it in your class:

package tutorial;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update;

public class Bot extends TelegramLongPollingBot {

  @Override
  public String getBotUsername() {
      return null;
  }

  @Override
  public String getBotToken() {
      return null;
  }

  @Override
  public void onUpdateReceived(Update update) {}

}

If you get a red line under TelegramLongPollingBot, it means you didn’t set up your pom.xml correctly. If this is the case, restart from here.

Available Methods

Let’s look into these 3 methods one by one.

  • getBotUsername — This method must be edited to always return your bot’s username. You should replace the null return value with it.
  • getBotToken — This method will be used by the framework to retrieve your bot token. You should replace the null return value with the token.
  • onUpdateReceived — This is the most important method. It will be called automatically whenever a new Update is available. Let’s add a System.out.println(update); call in there to quickly show what we are getting.

After you’ve replaced all the strings, you should end up with this:

@Override
public String getBotUsername() {
    return "TutorialBot";
}

@Override
public String getBotToken() {
    return "4839574812:AAFD39kkdpWt3ywyRZergyOLMaJhac60qc";
}

@Override
public void onUpdateReceived(Update update) {
    System.out.println(update);
}

At this point, the bot is configured and ready to go – time to register it on the API and start processing updates.

In the future, you should consider storing your token in a dedicated settings file or in environment variables. Keeping it in the code is fine for the scope of this tutorial, however, it’s not very versatile and is generally considered bad practice.

Registering the Bot

To register the bot on the API, simply add a couple of lines in the main method that will launch the application. If you named your class Bot, this is what your main method should look like:

public static void main(String[] args) throws TelegramApiException {
  TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
  botsApi.registerBot(new Bot());
}

You can place this method in any class. Since we have an auto-generated main method in the Main class, we’ll be using that one for this tutorial.

First Run

It’s time to run your bot for the first time.
Hit the green arrow to the left of public static void main and select the first option.

And then there was nothing. Yes, a bit anticlimactic.
This is because your bot has nothing to print – there are no new updates because nobody messaged it yet.

If you try messaging the bot on Telegram, you’ll then see new updates pop up in the console. At this point, you have your very own Telegram Bot – quite the achievement. Now, on to making it a bit more intelligent.

If nothing pops up, make sure you messaged the right bot and that the token you pasted in the code is correct.

Receiving Messages

Every time someone sends a private message to your bot, your onUpdateReceived method will be called automatically and you’ll be able to handle the update parameter, which contains the message, along with a great deal of other info which you can see detailed here.

Let’s focus on two values for now:

  • The user — Who sent the message. Access it via update.getMessage().getFrom().
  • The message — What was sent. Access it via update.getMessage().

Knowing this, we can make it a bit more clear in the console output.

@Override
public void onUpdateReceived(Update update) {
    var msg = update.getMessage();
    var user = msg.getFrom();

    System.out.println(user.getFirstName() + " wrote " + msg.getText());
}

This is just a basic example – you can now play around with all the methods to see everything you can pull out of these objects. You can try getUsername, getLanguageCode, and dozens more.

Knowing how to receive, process and print incoming messages, now it’s time to learn how to answer them.

Remember to stop and re-launch your bot after each change to the code.

Sending Messages

To send a private text message, you generally need three things:

  • The user must have contacted your bot first. (Unless the user sent a join request to a group where your bot is an admin, but that’s a more advanced scenario).
  • You must have previously saved the User ID (user.getId())
  • A String object containing the message text, 1-4096 characters.

With that out of the way, let’s create a new method to send the first message:

public void sendText(Long who, String what){
   SendMessage sm = SendMessage.builder()
                    .chatId(who.toString()) //Who are we sending a message to
                    .text(what).build();    //Message content
   try {
        execute(sm);                        //Actually sending the message
   } catch (TelegramApiException e) {
        throw new RuntimeException(e);      //Any error will be printed here
   }
}

And proceed to run this in the main method, right after registering the bot.
For this example, we’ll assume your User ID is 1234.

public static void main(String[] args) throws TelegramApiException {
   TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
   Bot bot = new Bot();                  //We moved this line out of the register method, to access it later
   botsApi.registerBot(bot);            
   bot.sendText(1234L, "Hello World!");  //The L just turns the Integer into a Long
}

If you did everything correctly, your bot should text you Hello World! every time you launch your code. Sending messages to groups or channels – assuming you have the relevant permissions – is as simple as replacing 1234 with the ID of the respective chat.

Try experimenting with other types of messages, like SendPhoto, SendSticker, SendDice…
A full list is available starting here.

Echo Bot

Let’s practice everything we tried so far by coding an Echo Bot.
Its functionality will be rather simple: every text message it receives will be sent right back to the user.

Copying Text

The most intuitive way of coding this is saving the User ID and calling sendText right after each update.

In other words:

@Override
public void onUpdateReceived(Update update) {
    var msg = update.getMessage();
    var user = msg.getFrom();
    var id = user.getId();

    sendText(id, msg.getText());
}

This works for text but can be extended to stickers, media and files.

Copying Everything

There are more specific functions that can be used to copy messages and send them back.
Let’s build a method to do just that:

public void copyMessage(Long who, Integer msgId){
   CopyMessage cm = CopyMessage.builder()
              .fromChatId(who.toString())  //We copy from the user
           .chatId(who.toString())      //And send it back to him
           .messageId(msgId)            //Specifying what message
           .build();
    try {
        execute(cm);
    } catch (TelegramApiException e) {
        throw new RuntimeException(e);
    }
}

After replacing the method call inonUpdateReceived, running the code will result in a fully functional Echo Bot.

This tutorial assumes that updates always contain messages for the sake of simplicity. This may not always be true – be sure to implement all the proper checks in your code to handle every type of update with the appropriate methods.

Executing Commands

To learn what a command is and how it works, we recommend reading this dedicated summary.
In this guide, we’ll focus on the technical side of things.

Creating Your Command

Begin by opening @BotFather.
Type /mybots > Your_Bot_Name > Edit Bot > Edit Commands.

Now send a new command, followed by a brief description.
For the purpose of this tutorial, we’ll implement two simple commands:

scream - Speak, I'll scream right back 
whisper - Shhhhhhh

Command Logic

We want the Echo Bot to reply in uppercase when it’s in scream mode and normally otherwise.

First, let’s create a variable to store the current mode.

public class Bot extends TelegramLongPollingBot {

   private boolean screaming = false;

   [...]
}

Then, let’s change some logic to account for this mode.

public void onUpdateReceived(Update update) {
    [...]                                   //Same variables as the previous versions
   if(screaming)                            //If we are screaming
       scream(id, update.getMessage());     //Call a custom method
   else
       copyMessage(id, msg.getMessageId()); //Else proceed normally
}

private void scream(Long id, Message msg) {
   if(msg.hasText())
       sendText(id, msg.getText().toUpperCase());
   else
       copyMessage(id, msg.getMessageId());  //We can't really scream a sticker
}

Finally, let’s add a couple more lines to the onUpdateReceived method to process each command before replying.

if(msg.isCommand()){ 
   if(msg.getText().equals("/scream"))         //If the command was /scream, we switch gears
      screaming = true;
   else if (msg.getText().equals("/whisper"))  //Otherwise, we return to normal
      screaming = false;

   return;                                     //We don't want to echo commands, so we exit
}

As you can see, it checks if the message is a command. If it is, the bot enters scream mode.
In the update method, we check which mode we are in and either copy the message or convert it to upper case before sending it back.

And that’s it. Now the bot can execute commands and change its behavior accordingly.

Naturally, this simplified logic will change the bot’s behavior for everyone – not just the person who sent the command. This can be fun for this tutorial but won’t work in a production environment – consider using a Map, dictionary or equivalent data structure to assign settings for individual users.

Remember to always implement a few basic global commands.
You can practice by implementing a simple feedback to the /start command, which we intentionally left out.

Buttons and Keyboards

To streamline and simplify user interaction with your bot, you can replace many text-based exchanges with handy buttons. These buttons can perform a wide variety of actions and can be customized for each user.

Button Types

There are two main types of buttons:

  • Reply Buttons — used to provide a list of predefined text reply options.
  • Inline Buttons — used to offer quick navigation, shortcuts, URLs, games and so much more.

Using these buttons is as easy as attaching a ReplyKeyboardMarkup or an InlineKeyboardMarkup to your SendMessage object.

This guide will focus on inline buttons since they only require a few extra lines of code.

Creating Buttons

First of all, let’s create some buttons.

 var next = InlineKeyboardButton.builder()
            .text("Next").callbackData("next")           
            .build();

 var back = InlineKeyboardButton.builder()
            .text("Back").callbackData("back")
            .build();

 var url = InlineKeyboardButton.builder()
            .text("Tutorial")
            .url("https://core.telegram.org/bots/api")
            .build();

Let’s go back through the fields we specified:

  • Text — This is what the user will see, the text that appears on the button
  • Callback Data — This will be sent back to the code instance as part of a new Update, so we can quickly identify what button was clicked.
  • Url — A button that specifies a URL doesn’t specify callbackdata since its behavior is predefined – it will open the given link when tapped.

Creating Keyboards

The buttons we created can be assembled into two keyboards, which will then be used to navigate back and forth between two sample menus.

First, add two fields to store the necessary keyboards.

private boolean screaming = false;

private InlineKeyboardMarkup keyboardM1;
private InlineKeyboardMarkup keyboardM2;

Then, build and assign them.

keyboardM1 = InlineKeyboardMarkup.builder()
          .keyboardRow(List.of(next)).build();  

//Buttons are wrapped in lists since each keyboard is a set of button rows
keyboardM2 = InlineKeyboardMarkup.builder()
          .keyboardRow(List.of(back))
          .keyboardRow(List.of(url))
          .build();

You can place this code wherever you prefer, the important thing is making sure that keyboard variables are accessible from the method call that will send the new menu. If you’re confused by this concept and don’t know where to put them, just paste them above the command processing flow.

Sending Keyboards

Sending a keyboard only requires specifying a reply markup for the message.

public void sendMenu(Long who, String txt, InlineKeyboardMarkup kb){
    SendMessage sm = SendMessage.builder().chatId(who.toString())
            .parseMode("HTML").text(txt)
            .replyMarkup(kb).build();

    try {
        execute(sm);
    } catch (TelegramApiException e) {
        throw new RuntimeException(e);
    }
}

You may have noticed that we also added a new parameter, HTML.
This is called a formatting option and will allow us to use HTML tags and add formatting to the text later on.

Menu Trigger

We could send a new menu for each new user, but for simplicity let’s add a new command that will spawn a menu. We can achieve this by adding a new else clause to the previous command flow.

 var txt = msg.getText();
 if(msg.isCommand()) {
        if (txt.equals("/scream"))
            screaming = true;
        else if (txt.equals("/whisper"))
            screaming = false;
        else if (txt.equals("/menu"))
            sendMenu(id, "<b>Menu 1</b>", keyboardM1);
        return;
 }

Try sending /menu to your bot now. If you did everything correctly, you should see a brand new menu pop up.

In a production environment, commands should be handled with an appropriate design pattern that isolates them into different executor classes – modular and separated from the main logic.

Navigation

When building complex bots, navigation is essential. Your users must be able to move seamlessly from one menu to the next.

In this example, we want the Next button to lead the user to the second menu.
The Back button will send us back.
To do that, we will start processing incoming CallbackQueries, which are the results we get after the user taps on a button.

A CallbackQuery is essentially composed of three main parameters:

  • queryId — Needed to close the query. You must always close new queries after processing them – if you don’t, a loading symbol will keep showing on the user’s side on top of each button.
  • data — This identifies which button was pressed.
  • from — The user who pressed the button.

Processing in this context just means executing the action uniquely identified by the button, then closing the query.

A very basic button handler could look something like:

private void buttonTap(Long id, String queryId, String data, int msgId) {

    EditMessageText newTxt = EditMessageText.builder()
            .chatId(id.toString())
            .messageId(msgId).text("").build();

    EditMessageReplyMarkup newKb = EditMessageReplyMarkup.builder()
            .chatId(id.toString()).messageId(msgId).build();                           

    if(data.equals("next")) {
        newTxt.setText("MENU 2");
        newKb.setReplyMarkup(keyboardM2);
    } else if(data.equals("back")) {
        newTxt.setText("MENU 1");
        newKb.setReplyMarkup(keyboardM1);
    }

    AnswerCallbackQuery close = AnswerCallbackQuery.builder()
            .callbackQueryId(queryId).build();

    execute(close);
    execute(newTxt);
    execute(newKb);
}

With this handler, whenever a button is tapped, your bot will automatically navigate between inline menus.
Expanding on this concept allows for endless combinations of navigable submenus, settings and dynamic pages.

Database

Telegram does not host an update database for you – once you process and consume an update, it will no longer be available. This means that features like user lists, message lists, current user inline menu, settings, etc. have to be implemented and maintained by bot developers.

If your bot needs one of these features and you want to get started on data persistence, we recommend that you look into serialization practices and libraries for your language of choice, as well as available databases.

Implementing a database is out of scope for this guide, however, several guides are available online for simple embedded open source software solutions like SQLite, HyperSQL, Derby and many more.

Your language of choice will also influence which databases are available and supported – the list above assumes you followed this Java tutorial.

Hosting

So far, your bot has been running on your local machine – your PC. While this may be good for developing, testing and debugging, it is not ideal for a production environment.
You’ll want your bot to be available and responsive at all times, but your computer might not always be online.

This can be done in four steps:

  • Package your code
    Making your bot easy to move and runnable outside of an IDE is essential to host it elsewhere.
    If you followed this tutorial, this standard guide will work for you. If you didn’t, look into export or packaging guides for your IDE and language of choice – procedures may vary but the end result is the same.

  • Purchase a VPS or equivalent service
    A server is essentially a machine that is always online and running, without you having to worry about anything. To host your bot, you can opt for a VPS which serves this purpose and can be rented from several different providers.
    Another option would be to purchase a network-capable microcontroller, which come in all different specs and sizes depending on your needs.

You should ensure that all user data remains heavily encrypted at all times in your database to guarantee the privacy of your users. The same concept applies to your local instance, however, this becomes especially important once you transfer your database to a remote server.

  • Upload your executable/package

Once you have a working ssh connection between your machine and your new server, you should upload your executable and all associated files.
We will assume the runnable jar TutorialBot.jar and its database dbase.db are currently in the /TBot folder.

$ scp -r /TBot/ username@server_ip:/bots/TBotRemote/
  • Run your application

Depending on which language you chose, you might have to configure your server environment differently. If you chose Java, you just need to install a compatible JDK.

$ apt install openjdk-17-jre
$ java -version

If you did everything correctly, you should see a Java version as the output, along with a few other values. This means you’re ready to run your application.

Now, to run the executable:

$ cd /bots/TBotRemote/
$ java -jar TutorialBot.jar

Your bot is now online and users can interact with it at any time.

To streamline and modularize this process, you could employ a specialized docker container or equivalent service.
If you followed along in one of the equivalent examples (C#, Python, Go and TypeScript) you can find a detailed set of instructions to export and run your code here.

Further Reading

If you got this far, you might be interested in these additional guides and docs:

  • General Bot Platform Overview
  • Detailed List of Bot Features
  • Full API Reference

If you encounter any issues while following this guide, you can contact us on Telegram at @BotSupport.

Привет! Меня зовут Павел Н., и я создаю проекты чат-ботов и автроворонок продаж.

@BotFather — это не просто инструмент, а настоящий “проводник” в мир Telegram-ботов. Он открывает доступ к API Telegram и позволяет вам создать и настроить бота буквально за несколько минут.

Но важно понимать: — это только начало.

Он помогает “родить” бота, задать ему имя, аватарку и описание, но не отвечает за его функционал.

Чтобы ваш бот ожил и начал выполнять задачи, вам понадобится исполнительный код.

Однако многие создатели ботов даже не подозревают, насколько мощным может быть @BotFather.

Они используют лишь базовые функции, упуская из виду тонкие настройки, которые могут значительно улучшить конверсию и удобство использования бота.

Мы разберем его функционал по косточкам и покажем, как использовать его возможности на максимум.

Перевод главного меню с функционалом.

Обзор функций.

Чтобы начать работу с @BotFather, достаточно открыть его и нажать кнопку «Старт». Перед вами сразу появится список доступных команд — это ваш ключ к управлению ботом.

/setname — устанавливает имя бота. Оно будет отображаться в окне диалога.

/setdescription — устанавливает описание бота.

/setabouttext — устанавливает приветственное сообщение бота.

/setuserpic — устанавливает аватарку бота.

Но на сегодня есть и второй способ как настроить эти команды ещё проще!

Заходим интерфейс чат-бота

1-жмём три точки

2-выбираем УПРАВЛЕНИЕ БОТОМ

Тут можно изменить приветствие

Изменить команды например start-перезапуск

Изменить настройки бота, очень удобно особенно для начинающих.

Чтобы изменить приветствие вам придёт такой текст:

OK. Send me the new description for the bot. People will see this description when they open a chat with your bot, in a block titled ‘What can this bot do?’.

ОК. Отправьте мне новое описание бота. Люди увидят это описание, когда откроют чат с вашим ботом, в блоке под названием «Что может этот бот?».

Разберем настройки бота.

API Token — показывает существующий токен бота, он позволяет вашему скрипту общаться с telegram api.

В этом же меню его можно отозвать через кнопку Revoke current token. Если вдруг возникла ситуация, когда токен скомпрометирован.

Принимайте во внимание, что пользователи которые активировали бота, подвязываются под ваш токен и учитываются.

Но, если вы не сделаете сбор данных (примитивную базу данных) в своём скрипте, вы не сможете собирать данные о пользователях.

И если вдруг возникла ситуация, что в вашем боте начала собираться аудитория, а разработанный вами скрипт ещё не ведёт никакой учёт пользователей, то импортировать с токена их не получится. В базу попадут только те, кто будет взаимодействовать с вашим ботом.

Edit Bot — позволяет настроить имя, описание, приветственный текст, аватарку и команды бота. Более подробно работу с этим блоком мы рассматриваем на конкретном примере чуть ниже в статье.

Bot Settings — технические настройки бота.

Inline Mode включает инлайн-режим бота, чтобы его можно было вызывать из строки ввода текста через символ @.

Allow Groups? — настройка возможности добавления вашего бота в каналы и чаты.

Group Privacy — ограничение доступа бота к конфиденциальной информации и перепискам в чатах и каналах.

Domain — установка прямой веб-ссылки для бота.

Payments — позволяет подключить встроенные платежи к боту. Но использовать их вы сможете только если задействуете определённые функции из bot api.

Transfer Ownership — смена владельца бота. Для этого нужно указать @юзернейм нового владельца.

Delete Bot — удаление бота.

Как создать нового бота в @BotFather.

Вводим в поисковой строке Telegram: @BotFather.

Жмём START (СТАРТ).

Нажимаем на команду /newbot. После чего запускается процесс создания нового бота.

@BotFather попросит придумать имя нашему боту.

Выбирать нужно его с умом, а не лишь бы было. Потому что это название является одним из факторов, которые учитываются в выдаче внутреннего поиска телеграм.

После этого вам предлагают выбрать юзернейм бота. Например, @Reng_Istbot— это юзернейм.

Важный момент что @BotFather пропускает только варианты названий, оканчивающиеся на «bot».

После всего @BotFather рапортует о том, что бот создан и готов к работе. И предлагает вам ТОКЕН, который нужен для того, чтобы ваш скрипт работал с api Телеграм.

Теперь для вас открыты все функции по работе с ботом и вы можете полностью его настроить.

Перед настройкой платежей в боте убедитесь, что у вас есть активная касса. Требования у каждой платёжной системы свои, но мы рассматриваем Юмани. Для создания кассы гражданам РФ необходимо оформить самозанятость или ИП.Нужно зайти на их сайт.

Чтобы начать процесс подключения платежей, вводим в текстовой строке /mybots. Переходим в меню Payments. Выбираем Юкаssа.

Далее выбираем тест.

И оказываемся в тестовом/боевом режиме боте Юкассы. Жмём СТАРТ и следуем инструкциям бота.

После мы возвращаемся к @BotFather и видим добавленный метод платежей с платёжным токеном:

После чего вы можете тестировать платежи с реквизитами, которые вам выдали.

Для реальной кассы принцип настройки идентичен.

На этом всё!

Надеюсь, этот материал был полезен и вдохновил вас на создание своего Telegram-бота.

Помните, что каждый бот — это не просто инструмент, а возможность сделать жизнь проще, интереснее и продуктивнее.

Если остались вопросы, идеи или просто хотите обсудить что-то — пишите в комментариях или в личные сообщения.

Я всегда рад помочь и поделиться опытом!

Меня зовут Павел Н., и я создаю чат-ботов и автоматизированные воронки продаж.

Пусть ваши проекты приносят радость, вдохновение и, конечно, отличные результаты!

До встречи !

#статьи


  • 0

Управляем телеграм-ботами без сторонних библиотек.

Иллюстрация: Оля Ежак для Skillbox Media

Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.

Обычно для разработки телеграм-ботов программисты используют специальные библиотеки и фреймворки, например Aiogram или Telegraf. Они ускоряют разработку и делают код компактным, однако их авторы не всегда успевают вовремя добавлять поддержку новых функций Telegram.

Альтернативное решение — Bot API. Это нативный интерфейс от создателей мессенджера, который лежит в основе всех ботов и библиотек. В этой статье рассказываем, для чего нужен Telegram Bot API и как им пользоваться.

Эксперт

Principal Software Engineer, эксперт Skillbox по бэкенду и Java в коммерческой разработке.

Содержание

  • Что такое Telegram Bot API
  • Какие API есть в Telegram
  • Как создать бота в Telegram
  • Ограничения ботов
  • Как взаимодействовать с ботом через Bot API
  • Как прочитать сообщение
  • Как отправить сообщение
  • Как отправить стикер
  • Какие ещё методы есть в Telegram Bot API
  • Библиотеки для разработки телеграм-ботов

Чтобы понять, что такое Telegram Bot API, для начала разберёмся с самим понятием API.

API (application programming interface, программный интерфейс приложения) — это набор методов, с помощью которых различные сервисы и программы обмениваются данными между собой. Разработчики используют API для того, чтобы получить от сервиса нужную информацию или заставить его выполнить определённое действие.

Процесс работы с API строится на модели «запрос — ответ». Программист или приложение отправляет запрос на сервер и в ответ получает нужные данные, подтверждение выполнения операции или код ошибки.

Telegram Bot API — это набор методов для управления телеграм-ботами. С его помощью можно обрабатывать сообщения пользователей, автоматизировать модерацию групповых чатов и создавать полезные утилиты на базе мессенджера.

Если вы никогда не работали с API и хотите узнать об этом больше, рекомендуем прочитать наше руководство.

Telegram предоставляет разработчикам несколько API для создания приложений, ботов и сторонних сервисов. Все они связаны с мессенджером, но у них разные цели и возможности:

  • Telegram API — низкоуровневый интерфейс, на базе которого реализованы основные функции Telegram, включая криптографический протокол MTProto. Официальные клиенты Telegram используют методы из этого набора.
  • Bot API — HTTP-интерфейс, созданный для разработки ботов, внутренних мини-приложений и веб-игр. Благодаря ему программистам не надо разбираться в устройстве Telegram API для отправки сообщений и получения данных из чатов с пользователями в реальном времени. Достаточно отправить HTTP-запрос, получить ответ в формате JSON и обработать его.
  • TDLib — библиотека, предназначенная для разработки альтернативных клиентов Telegram. Если вам кажется, что в приложении мессенджера нет какой-то важной функции, то с помощью TDLib можно создать собственное приложение и опубликовать его в интернете.
  • Gateway API — набор методов для отправки кодов авторизации через Telegram. Обычно компании отправляют коды с помощью SMS, но благодаря Gateway API можно сэкономить на оплате мобильной связи.
  • Bot Payments API — платформа для обработки платежей в телеграм-ботах. С её помощью разработчики могут получать деньги от пользователей за товары и услуги.

Перед тем как писать код, надо создать бота — зарегистрировать специальный аккаунт и получить уникальный токен для API. Разберём подробно этот процесс.

Для разработчиков в Telegram есть BotFather — «крёстный отец» всех ботов. С его помощью можно зарегистрировать и настроить нового бота. Вот как это сделать:

  • Шаг 1. Запустите Telegram и перейдите в чат BotFather. Будьте внимательны, у официального бота должна быть галочка верификации.

Официальный бот BotFather в Telegram
Скриншот: BotFather / Telegram
  • Шаг 2. Нажмите кнопку Start, и BotFather пришлёт в ответ список доступных команд.

Список доступных команд
Скриншот: BotFather / Telegram
  • Шаг 3. Выберите команду /newbot для создания нового бота.
  • Шаг 4. BotFather попросит придумать боту имя, которое пользователи будут видеть в списке чатов. Можно использовать символы любого алфавита, цифры, знаки препинания и эмодзи. Например: Суперполезный бот 3000 🤓.
  • Шаг 5. После этого бот-отец попросит задать username — уникальное имя пользователя, с помощью которого вашего бота можно будет найти в Telegram. В этом случае можно использовать только латиницу, цифры и некоторые разделительные знаки, а на конце обязательно должно быть слово bot. Например: Super3kBot или Super3k_bot.

BotFather проверит доступность юзернейма, и, если он свободен, поздравит с созданием нового бота и пришлёт токен. Это специальный набор букв и цифр, который нужен для связи вашего бота с сервером Telegram. Выглядит он примерно так:

7582552655:AAHmzfaKaoMnajrk47dLS76S2epa127gJ-0

Сообщение с токеном нового бота
Скриншот: BotFather / Telegram

Сохраните токен в надёжном месте и никому не показывайте. Если злоумышленники завладеют им, то смогут контролировать вашего бота, собирать данные пользователей и перенаправлять платежи. В случае утечки сгенерируйте новый токен с помощью команды /revoke в BotFather.

С помощью BotFather можно не только создавать новых ботов, но и управлять существующими. Вот какие команды ещё есть:

  • /mybots — показать список всех ботов пользователя;
  • /setname — изменить имя бота;
  • /setdescription — установить описание бота, которое отображается в профиле бота;
  • /setabouttext — заполнить поле «О боте» в профиле;
  • /setuserpic — установить аватарку;
  • /setcommands — настроить список команд;
  • /setinline — включить inline-режим, чтобы ботом можно было пользоваться в любом чате Telegram;
  • /setjoingroups — разрешить боту работать в группах;
  • /deletebot — удалить бота.

Боты в Telegram могут отправлять сообщения, модерировать групповые чаты и получать данные из сторонних сервисов. Несмотря на это, разработчики мессенджера устанавливают ограничения, чтобы не перегружались серверы и спамеры не докучали пользователям.

Работая над своим проектом, помните, что боты в Telegram не могут:

  • писать первыми — для начала общения пользователь должен нажать кнопку Start;
  • управлять группами, в которые их не добавили администраторы;
  • отправлять более 30 сообщений в секунду всего и более 20 сообщений в минуту в один чат;
  • отправлять файлы размером более 50 МБ.

Если превысить лимиты, то модераторы Telegram на время отключат бота. В случае повторных нарушений бота могут заблокировать.

Для взаимодействия с ботом при помощи Telegram Bot API мы будем отправлять HTTP-запросы на сервер мессенджера. В ответ нам будут приходить данные в формате JSON. Отправлять запросы можно несколькими способами.

Самый простой способ отправить запрос — воспользоваться браузером. Вот как это можно сделать:

  • Шаг 1. Откройте любой браузер и введите адрес в формате https://api.telegram.org/bot{ТОКЕН}/{НАЗВАНИЕ-HTTP-МЕТОДА}.
  • Шаг 2. Перейдите по адресу, чтобы получить ответ от сервера.

В качестве примера проверим, работает ли наш бот, и запросим основную информацию о нём. Для этого отправим запрос getMe:

https://api.telegram.org/bot7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg/getMe

Если вы всё сделали правильно, то в окне браузера появится следующий код:

{
    "ok":true,
    "result": {
        "id":7432444009,
        "is_bot":true,            
        "first_name":"Суперполезный бот 3000 🤓",
        "username":"Super3kBot",
        "can_join_groups":true,
        "can_read_all_group_messages":false,
        "supports_inline_queries":false,
        "can_connect_to_business":false,
        "has_main_web_app":false
    }
 }

Из него мы можем узнать уникальный идентификатор бота, юзернейм, название и список разрешений — например, можно ли добавить бота в групповой чат и может ли он читать в нём все сообщения.

Запрос getMe можно отправить с помощью кода на Python и библиотеки Requests. Эта библиотека содержит функции, упрощающие процесс взаимодействия с различными API.

import requests

# Создаём переменные, в которых будут храниться токен бота и 
 HTTP-запрос 
bot_token = "7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg"
url = f"https://api.telegram.org/bot{bot_token}/getMe"

response = requests.get(url)

# Пишем условие для обработки ответа сервера
if response.status_code == 200:
    json_data = response.json()
    print("Ответ API:", json_data)
else:
    print(f"Ошибка: {response.status_code}")

После запуска кода в терминале IDE появится ответ сервера в виде JSON-файла. Ответ будет содержать всё то же самое, что и при отправке запроса через браузер: имя и идентификатор бота и список разрешений.

Пользователи могут активировать нашего бота и общаться с ним. Мы же можем получать эти сообщения и обрабатывать на своём сервере. Давайте напишем боту и попробуем прочитать чат с помощью Telegram Bot API.

Поздороваемся с ботом
Скриншот: Telegram / Skillbox Media

Список сообщений можно получить с помощью HTTP-метода getUpdates. Для этого просто перейдите в браузере по следующему адресу:

https://api.telegram.org/bot7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg/getUpdates

В браузере появится следующий JSON-код:

{
    "ok":true,
    "result": 
        {
            "update_id":123456789,
            "message": {
                "message_id":1,
                "from": {
                    "id":123456789,
                    "is_bot":false,
                    "first_name":"user",
                    "username":"user",
                    "language_code":"ru",
                    "is_premium":true
                },
                "chat": {
                    "id":123456789,
                    "first_name":"user",
                    "username":"user",
                    "type":"private"
                },
                "date":123456789,
                "text":"Hello!"
                }
            }
}

В нём:

  • update_id — уникальный номер обращения к боту;
  • message — большой блок со всеми метаданными сообщения;
  • message_id — ID сообщения в чате;
  • from — блок со всеми данными отправителя, включая ID пользователя, имя, никнейм и сведения о наличии подписки Telegram Premium;
  • chat — блок с информацией о чате, включая ID, никнейм и тип (публичный или приватный);
  • date — дата отправления;
  • text — текст сообщения.

Также запрос getUpdates можно отправить с помощью Python:

import requests

# Токен бота и HTTP-запрос
bot_token = "7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg"
url = f"https://api.telegram.org/bot{bot_token}/getUpdates"

response = requests.get(url)

# Обработка ответа сервера
if response.status_code == 200:
    json_data = response.json()
    print("Ответ API:", json_data)
else:
    print(f"Ошибка: {response.status_code}")

Теперь попробуем ответить на наше же сообщение от имени бота. Для этого воспользуемся методом sendMessage. Он немного сложнее предыдущих и требует передать на вход дополнительные параметры: ID чата и текст сообщения. В общем виде метод выглядит так:

https://api.telegram.org/bot{ТОКЕН}/sendMessage? chat_id={ID-ЧАТА}& text={СООБЩЕНИЕ}

В нём:

  • {ТОКЕН} — токен, который нам выдал BotFather;
  • {ID-ЧАТА} — уникальный номер чата, в который бот отправит сообщение. Этот номер можно посмотреть в поле «chat»: {«id»: 123456789}, выполнив запрос getUpdates;
  • {СООБЩЕНИЕ} — текст сообщения.

Отправим сообщение «Привет!»:

https://api.telegram.org/bot7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg/sendMessage?chat_id=123456789&text=Привет!

Если вы всё сделали правильно, то в чате появится сообщение от имени бота.

Бот отправил в чат текст, который мы указали в запросе
Скриншот: Telegram / Skillbox Media

С помощью Python запрос sendMessage можно отправить так:

import requests

# Токен бота и HTTP-запрос
bot_token = "7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg"
chat_id = "123456789"
message_text = "Привет!"

url = f"https://api.telegram.org/bot{bot_token}/sendMessage"

# Параметры запроса
params = {
    "chat_id": chat_id,
    "text": message_text
}

response = requests.get(url, params=params)

# Обработка ответа сервера
if response.status_code == 200:
    json_data = response.json()
    print("Ответ API:", json_data)
else:
    print(f"Ошибка: {response.status_code}")

Для отправки стикеров в Bot API есть метод sendSticker. Чаще всего этот запрос получается довольно длинным из-за объёмного ID стикера, поэтому вместо браузера удобнее использовать Python. В теле запроса надо обязательно передать токен бота, ID чата и стикера.

Как получить первые два параметра, мы уже знаем из примеров выше. Чтобы получить ID стикера, сделайте следующее:

  • Шаг 1. Отправьте в чат с ботом нужный стикер.
  • Шаг 2. Выполните в браузере запрос getUpdates.
  • Шаг 3. В JSON-ответе найдите данные последнего сообщения.
  • Шаг 4. В поле file_id будет ID стикера. Например: «file_id»:»CAACAgIAAxkBAAENhyhn18v1vykSL7iweWj0syat7KNAPwACmEcAAkYhyUrp2ZMtEnJVtTYE».

Код запроса на Python выглядит так:

import requests

# Токен бота и HTTP-запрос
bot_token = "7432444009:AAG62HGsVhddP5kq5Cbdf1ugTcYpTriV1Mg"
chat_id = "123456789"
sticker_id = "CAACAgIAAxkBAAENhyhn18v1vykSL7iweWj0syat7KNAPwACmEcAAkYhyUrp2ZMtEnJVtTYE"

url = f"https://api.telegram.org/bot{bot_token}/sendSticker"

# Параметры запроса
params = {
    "chat_id": chat_id,
    "sticker": sticker_id
}

response = requests.get(url, params=params)

# Обработка ответа сервера
if response.status_code == 200:
    json_data = response.json()
    print("Ответ API:", json_data)
else:
    print(f"Ошибка: {response.status_code}")

Если запустить код в IDE, то бот пришлёт указанный стикер в чат.

Бот прислал стикер, ID которого мы указали в коде запроса
Скриншот: Telegram / Skillbox Media

Разработчики Telegram включили в Bot API несколько десятков методов. С их помощью можно отправлять обычный текст, стикеры, файлы, фотографии, голосовые сообщения, ставить реакции и управлять групповыми чатами. Например, можно запрограммировать бота для автоматической блокировки спамеров.

Все методы подробно описаны в официальной документации Bot API. В ней есть названия методов, принцип работы и список возможных параметров. Отдельно отмечены обязательные параметры, без которых сервер не сможет обработать запрос.

Вот некоторые из доступных методов в Bot API:

  • forwardMessage — пересылает сообщение пользователя в другой чат;
  • copyMessage — копирует сообщение;
  • sendPhoto — отправляет изображение;
  • sendVoice — отправляет голосовое сообщение;
  • sendPoll — запускает в чате опрос;
  • getUserProfilePhotos — получает аватарку пользователя;
  • banChatMember — блокирует пользователя в групповом чате;
  • createChatInviteLink — создаёт ссылку-приглашение в групповой чат;
  • setChatPhoto — устанавливает аватарку группового чата;
  • setChatTitle — устанавливает название группового чата;
  • getChatAdministrators — получает список администраторов;
  • setMyCommands — метод для замены списка команд бота;
  • setMyName — метод для смены имени бота.

Сочетая методы Bot API можно создавать ботов со сложной логикой. Главное преимущество «чистого» API перед библиотеками в том, что запросы можно отправлять с помощью любого языка программирования или вообще без кода. Это даёт больше преимуществ разработчикам, которые создают ботов на непопулярных языках программирования.

Главный минус работы с Bot API напрямую в том, что каждый раз приходится использовать много кода даже для простых запросов. Кроме того, надо разработать алгоритм, который может быстро получать сообщения из чата с пользователем и анализировать их. Это усложняет процесс создания ботов, поэтому вместо Bot API лучше использовать специальные библиотеки.

Для разработчиков ботов есть специальные библиотеки на базе Bot API, которые упрощают процесс отправки запросов. Они помогают сократить количество кода в проекте и предоставляют готовые алгоритмы мониторинга новых сообщений и обработки команд. С такими библиотеками разработка бота становится похожа на сборку конструктора — просто берём нужные функции, связываем их друг с другом и событиями в чате.

Рассмотрим популярные библиотеки для создания телеграм-ботов на разных языках программирования.

Python — самый популярный язык в сообществе разработчиков ботов. В большинстве гайдов, курсов и уроков именно на нём показывают все примеры кода. Для Python есть следующие библиотеки:

  • Aiogram — асинхронная библиотека для создания высоконагруженных ботов. Чаще всего именно её используют в масштабных проектах с десятками тысяч ежедневных пользователей. Разработчики Aiogram часто обновляют библиотеку и быстро внедряют новые функции Bot API.
  • TeleBot — одна из первых библиотек для Python. Обновления для неё выходят редко, а боты на базе TeleBot не справляются с большим количеством запросов. Из-за простого синтаксиса решение подойдёт новичкам, которые только изучают возможности Bot API.
  • Python-telegram-bot — библиотека с асинхронным и синхронным режимами работы. По возможностям и сложности находится между Aiogram и TeleBot. Обновления также выходят с интервалом в несколько месяцев.

Второй по популярности язык программирования для разработки телеграм-ботов — JavaScript. Для него и платформы Node.js тоже есть много обучающих материалов и библиотек. Ниже список популярных решений:

  • Telegraf.js — фреймворк с поддержкой JavaScript и TypeScript. Поддерживает основные функции мессенджера и выполняет код асинхронно.
  • GrammY — библиотека для разработки ботов на JavaScript и TypeScript, которых можно запускать в Node.js и Deno. Если вы уже создавали веб-проекты с нуля, то сможете быстро научиться писать код для телеграм-ботов. Во всяком случае, это гарантируют авторы GrammY.
  • Node.js Telegram Bot API — простая библиотека для Node.js. Обновления для неё выходят редко.

Одно из преимуществ открытого Bot API в том, что сторонние разработчики могут создавать на его базе собственные библиотеки для любых языков программирования. Поддерживают их не так активно, как решения для Python и JavaScript, но базовые функции всегда работают. Ниже список библиотек для разных языков программирования.

Название Язык программирования Ссылка
PHP Telegram Bot PHP GitHub
Telegram Bot Java Library Java GitHub
Telegram.Bot .NET GitHub
Tgbot-cpp C++ GitHub
Kotlin Telegram Bot Kotlin GitHub
Swift Telegram SDK Swift GitHub
Telegram-bot-ruby Ruby GitHub
  • Telegram Bot API — это набор HTTP-методов, с помощью которых можно отправлять запросы к серверу Telegram, получать ответы в формате JSON и управлять ботами.
  • При использовании Bot API важно учитывать ограничения на количество запросов и соблюдать рекомендации по безопасности, чтобы избежать блокировок бота.
  • Открытый API позволяет сторонним разработчикам использовать любые языки программирования для управления ботами.
  • Работать напрямую с серверами Telegram сложно и не всегда рационально: код получается сложным, запутанным и надо самостоятельно реализовывать многие алгоритмы.
  • В качестве альтернативы можно использовать готовые библиотеки на базе Bot API. Существуют библиотеки для разных языков программирования, но авторы и сообщество активно поддерживают только решения для Python и JavaScript.

Бесплатный курс: «Быстрый старт в Python»
Начать учиться

BotFather — это главный сервис в Телеграмме, через который происходит регистрация всех пользовательских ботов. На любой аккаунт можно зарегистрировать неограниченное количество ботов, единственное условие — это уникальный юзернейм с приставкой «bot», например, «@MyFirstbot» или «@MyFirst_bot».

Как создать нового бота в BotFather:

Регистрация происходит через главный сервис, который можно найти в обычной строке поиска Телеграма — «BotFather». Стоит обратить внимание на галочку, у официального сервиса она должна быть.

Пошаговая инструкция:

  1. открыть приложение Telegram на любом устройстве;

  2. в строку поиска ввести @BotFather;

  3. нажать на первый результат;

  4. запустить сервис при помощи кнопки «START»;

  5. в появившемся списке выбрать команду «/newbot»;

  6. ввести название — это имя, которое будет отображаться сверху;

  7. указать юзернейм — он должен состоять исключительно из английских букв и цифр, а также включать в название приставку «bot» в самом конце.

На этом процесс регистрации завершен, осталось сохранить полученный token для взаимодействия с HTTP API по вебхук-ссылке. При помощи него будет осуществляться отправка и получение сообщений.

❗️ Если обновили токен подключенного к RadistWeb Telegram Бота то нужно его обновить и в RadistWeb, иначе бот не будет работать

Иногда может возникнуть необходимость удалять ботов. Сделать это можно через тот же сервис, где происходит создание. Пошаговая «BotFather» инструкция для удаления:

  1. ввести команду «/deletebot»;

  2. выбрать из появившегося списка необходимый объект;

  3. подтвердить удаление путем ввода подтверждающей фразы.

❗️Если вы удалите бота, то он останется в RadistWeb. Для полного его удаления нужно обращениться в нашу Техническую Поддержку

Все функции BotFater (список команд с пояснением)

Помимо обычного создания бота, при помощи сервиса можно проводить его настройку, например, устанавливать аватар и описание. Разберем основной функционал «BotFather» на русском языке.

Эти команды запускают стадии создания нового и редактирование существующих ботов.

  • «/newbot» — создает нового.

  • «/mybots» — позволяет увидеть список существующих и управлять настройками.

Последняя команда вызовет список всех доступных ботов, которых можно редактировать. Там можно найти следующие возможности.

  • API Token — покажет действующий токен.

  • Редактирование — изменение всех основных настроек, например, названия или аватарки.

  • Настройки — дополнительные настройки

  • Передать права — с помощью этой функции можно передать бота другому Телеграмм пользователю.

Редактирование созданного бота:

В этом блоке происходит основная настройка бота в Телеграме через BotFather. Команды срабатывают, если предварительно выбрать объект при помощи команды «/mybots».

  • «/setname» — устанавливает имя. Оно будет отображаться сверху.

  • «/setdescription» — устанавливает описание. Его можно найти в профиле.

  • «/setabouttext» — устанавливает текст, который пользователь видит до нажатия на кнопку «START».

  • «/setuserpic» — устанавливает аватар. Отправлять файл необходимо в качестве обычной сжатой картинки любого формата.

То есть сначала идет команда, а потом название, которое будет отображаться в меню бота. Однако, если их не указать в «BotFather» Telegram, они все равно будут работать, но пользователь не сможет узнать об их существовании.

  • «/deletebot» — позволяет удалить бота. Для удаления потребуется подтвердить серьезность намерений вводом ключевой фразы. Она будет отправлена в ответ после ввода команды.

Этот блок позволяет настраивать основные параметры бота. Например, можно сгенерировать новый токен, если он был утрачен или попал в руки злоумышленников.

  • «/token» — отображает актуальный токен.

  • «/revoke» — генерирует новый токен. Следует аккуратно относиться к этой команде, поскольку она мгновенно генерируется новый. То есть не требует дополнительных подтверждений.

В сети интернет очень много текстового и видео материала по работе в сервисе BotFather. Если не нашли нужную информацию в данной инструкции, можете посмотреть в открытых источниках в сети интернет.

#Контент

BotFather — это официальный инструмент от Telegram, с помощью которого можно легко завести нового бота. Он помогает с генерацией API-токена и настройкой базовых параметров.

Зачем вообще нужен бот?

Такой бот пригодится, если вы хотите:

  • Автоматизировать ответы на частые вопросы.
  • Делать рассылки уведомлений клиентам.
  • Подключать Telegram к CRM или сайту.
  • Управлять каналами и группами.

Иными словами, это как заготовка — «пустой» бот, к которому потом подключается основной функционал: чат-боты, автопостинг, интеграции и многое другое.

Шаг 1. Запускаем BotFather

  1. Откройте приложение Telegram.
  2. Найдите в поиске: @BotFather.
  3. Перейдите в чат и нажмите Start.

Шаг 2. Создаём нового бота

  1. Напишите команду /newbot или выберите соответствующий пункт в меню.
  2. Придумайте имя для бота (например, PromoBot или МойПомощник).
  3. Придумайте юзернейм на латинице — он должен оканчиваться на bot, например: PromoHelperBot.

Если всё ок и имя свободно — BotFather пришлёт сообщение с токеном. Он нужен для дальнейшей работы с Telegram API.

Шаг 3. Получаем API-токен

📌 API-токен — это ключ доступа к управлению ботом через Telegram API.
После создания бота вы получите сообщение вроде:

Use this token to access the HTTP API:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ

Если бот уже существует, найти токен можно через команду /mybots.


Разместите
тендер бесплатно

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.

Заполнить заявку

12682 тендера

проведено за восемь лет работы нашего сайта.


⚠️ Никому не передавайте токен. Он даёт полный контроль над ботом.

Шаг 4. Настраиваем внешний вид (по желанию)

BotFather позволяет гибко настроить бота:

  • /setdescription — добавить описание (актуально, если бот используется в рекламе).
  • /setabouttext — короткий текст «О боте».
  • /setuserpic — установить аватар.
  • /setcommands — прописать список доступных команд.

Шаг 5. Подключаем и используем

Готово! Теперь вы можете:

  • Интегрировать бота с сервисами вроде BotHelp или Controller Bot.
  • Подключать свои скрипты на Python, Node.js и других языках.
  • Создавать автоответы, сценарии и автоматизировать рутину.

Если статья была полезна — заходите в мой Telegram-канал, там ещё много годного по теме 🙌

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Музыкальный центр aiwa nsx bl46 инструкция
  • Овостоп для кошек инструкция по применению капли на холку отзывы
  • Антипар для рыбок инструкция применения в общем аквариуме
  • Синестрол инструкция по применению для людей
  • Правила ознакомления с должностной инструкцией сотрудника