> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/learn/08-telegram-bot.md).

# Создание бота в BotFather

## Что вы получите

У вас будут отдельные управляемые боты для уведомлений, Security-кодов и, при необходимости, продолжения обмена. Их токены не смешиваются, а назначение каждого понятно команде.

## Почему лучше три бота

| Бот          | Назначение в iEXExchanger | Тип сообщений                                 |
| ------------ | ------------------------- | --------------------------------------------- |
| Уведления    | **«Уведомления»**         | Выбранные события заявок и сервиса            |
| Безопасность | **«Security-коды»**       | Одноразовые коды входа и подтверждения        |
| Заявки       | **«Продолжение обмена»**  | Реквизиты, статусы и двусторонний чат клиента |

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

{% hint style="warning" %}
Назначение Telegram-подключения, а для обычных уведомлений ещё и место доставки, выбираются при создании и затем не меняются. При ошибке создайте новое подключение.
{% endhint %}

## Создайте бота

{% stepper %}
{% step %}

### Найдите официальный BotFather

Откройте в Telegram аккаунт [@BotFather](https://t.me/BotFather) с подтверждённым именем пользователя. Не передавайте токен стороннему «помощнику».
{% endstep %}

{% step %}

### Запустите создание

Отправьте команду `/newbot`.
{% endstep %}

{% step %}

### Задайте публичное имя

Введите понятное имя, которое увидит пользователь: например, название сервиса и назначение.
{% endstep %}

{% step %}

### Задайте username

Выберите уникальное латинское имя, оканчивающееся на `bot`, без домена и пароля. Например, шаблон `yourservice_notify_bot`.
{% endstep %}

{% step %}

### Сохраните токен

BotFather выдаст токен доступа. Скопируйте его непосредственно в менеджер секретов. Не вставляйте значение в документацию, чат или снимок экрана.
{% endstep %}

{% step %}

### Оформите профиль

Через меню BotFather добавьте описание, краткий текст и логотип без обещаний, которых бот не выполняет. Пользователь должен отличать бота заявок от бота безопасности.
{% endstep %}
{% endstepper %}

Полная последовательность описана в [официальном руководстве Telegram](https://core.telegram.org/bots/tutorial).

## Настройте безопасность бота

* владельцем BotFather должен быть контролируемый аккаунт компании;
* включите двухэтапную защиту Telegram владельца;
* выдавайте доступ к токену только ответственным администраторам;
* не пересылайте токен самому боту или в группу;
* храните назначение, username, дату создания и ответственного без самого токена;
* при утечке отзовите токен через BotFather, сохраните новый в iEXExchanger и повторите проверки.

{% hint style="danger" %}
Токен даёт управление ботом. Считайте его паролем производственной интеграции.
{% endhint %}

## Поймите ограничения Telegram

{% tabs %}
{% tab title="Личный чат" %}
Бот не может первым начать разговор с произвольным пользователем. Пользователь должен открыть бота и нажать **Start** или отправить `/start`.
{% endtab %}

{% tab title="Группа" %}
Privacy Mode включён по умолчанию. Бот видит команды, ответы ему и служебные события, но не обязан получать каждое обычное сообщение.
{% endtab %}

{% tab title="Канал" %}
Для публикации бот добавляется администратором с минимальным правом отправлять сообщения.
{% endtab %}

{% tab title="Webhook" %}
Webhook и `getUpdates` взаимно исключаются. Бот продолжения обмена в production использует webhook, поэтому его не следует одновременно искать через polling обычного подключения.
{% endtab %}
{% endtabs %}

См. [возможности ботов](https://core.telegram.org/bots/features), [Bot API](https://core.telegram.org/bots/api) и [webhook-руководство](https://core.telegram.org/bots/webhooks).

{% hint style="info" %}
Не отключайте Privacy Mode без причины. Для обнаружения группы сначала отправьте команду боту, например `/start@username_бота`. Если режим всё же изменён в BotFather, Telegram может потребовать удалить и заново добавить бота в группу.
{% endhint %}

## Создайте запись в iEXExchanger

1. Откройте **«Настройки» — «Общие настройки» — «Уведомления» — «Подключения»**.
2. Нажмите **«Добавить»**.
3. Выберите тип **Telegram**.
4. Укажите назначение: **«Уведомления»**, **«Security-коды»** или **«Продолжение обмена»**.
5. Для **«Уведомления»** выберите **«В канал»**, **«В группу»** или **«В бота»**.
6. Задайте уникальное внутреннее название и нажмите **«Создать»**.
7. Откройте созданную запись, вставьте токен и продолжите инструкцию выбранного назначения.

## Проверьте токен

Для обычного подключения действие **«Проверить»** обращается к Telegram, определяет бота и, если чат уже привязан, проверяет его тип. Для Security и продолжения обмена используются дополнительные защищённые проверки.

Успех `getMe` подтверждает токен, но не право публикации, привязку клиента, событие и доставку сообщения.

## Этап завершён, если

* [ ] бот создан через официальный BotFather;
* [ ] username уникален и заканчивается на `bot`;
* [ ] профиль ясно описывает назначение;
* [ ] токен хранится как секрет;
* [ ] для разных задач запланированы отдельные боты;
* [ ] назначение и место доставки выбраны без ошибки;
* [ ] понятны ограничения личного чата, группы и webhook;
* [ ] проверка подключения дополнена проверкой реального события.

Теперь подключите [канал, группу или личный чат](/learn/08-telegram-bot/09-telegram-destinations.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/learn/08-telegram-bot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
