Перейти к содержимому

Создание бота в Telegram

1. Создание бота через @BotFather

  1. Откройте Telegram и найдите бота @BotFather.
  2. Отправьте команду /newbot.
  3. Укажите имя бота (отображается в интерфейсе, может быть любым):
    bash
    TGZ Bot
  4. Задайте username бота (должен заканчиваться на bot или _bot):
    bash
    TGZ_lib_Bot
  5. После успешного создания вы получите токен доступа
    bash
    123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
Создание бота в @BotFather

2. Подключение бота к серверу

2.1 Настройка Webhook

Принцип работы:
Telegram отправляет запросы к вашему серверу, а вы их обрабатываете

Для подключения бота к вашему серверу используйте ссылку вида:
https://api.telegram.org/bot{YOUR_TOKEN}/setWebhook?url=https://www.example.com

Требования:

  • Обязателен HTTPS (SSL-сертификат).
  • Сервер должен обрабатывать POST-запросы.

Проверка работы

  1. Перейдите по сформированной ссылке в браузере.
  2. При успешной настройке вы увидите ответ:
json
{
  "ok": true,
  "result": true,
  "description": "Webhook was set"
}

2.2 Настройка LongPoll

Принцип работы:
Ваш сервер отправляет запросы Telegram на получение новых обновлений
Для работы не требуется никакой настройки

Преимущества перед Webhook:

  1. Не требует SSL-сертификата
  2. Не требует публичного IP (Работает из локальной сети, за NAT или без домена)

Недостатки:

  1. Возможны задержки во время запросов
  2. Дополнительная нагрузка на сервер
  3. Менее эффективен для ботов с высокой нагрузкой (>50 сообщений/сек)

3. Базовая настройка бота

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

Чтобы начать, отправьте команду /mybots, выберите вашего бота из списка, и вы увидите доступные опции.

3.1 Визуальное оформление

Это первое, что увидят ваши пользователи. Рекомендуется настроить все эти пункты.

  • Имя бота (/setname) Изменяет имя, которое отображается в списке чатов и диалоге. Оно может быть любым (включая пробелы и эмодзи) и не обязано быть уникальным.

  • Описание (/setdescription) Это текст, который пользователь видит до того, как нажмет "Start". Это можно использовать, чтобы объяснить, что делает бот и чем он полезен.

  • Информация о боте (/setabouttext) Это короткий текст (до 120 символов), который отображается в профиле бота. Он виден уже после того, как пользователь начал диалог.

  • Изображение профиля (/setuserpic) Изменяет аватарку для вашего бота. Это может быть логотип вашего сервиса или любая другая картинка.

3.2 Интерактивность и команды

  • Список команд (/setcommands) Одна из самых важных настроек! Здесь вы можете задать список команд и их описание, которые будут отображаться пользователю, когда он вводит символ /.

    Формат отправки:

    bash
    command1 - Краткое описание первой команды
    command2 - Описание второй
    help - Получить справку по работе с ботом
Пример меню команд, которое увидит пользователь
  • Настройка Inline-режима (/setinline) Это мощная функция, которая позволяет пользователям взаимодействовать с вашим ботом из любого чата (личного, группового или канала), даже не добавляя его туда. Пользователь просто вводит @имя_вашего_бота и через пробел пишет запрос.

    Как это работает: Бот мгновенно предлагает список релевантных ответов (статьи, картинки, GIF и т.д.), и пользователь может выбрать один из них, чтобы отправить в текущий чат.

    Настройка в @BotFather:

    1. Отправьте команду /setinline и выберите вашего бота.
    2. BotFather попросит вас прислать текст-заполнитель (placeholder). Это короткая строка, которая будет отображаться в поле ввода, когда пользователь только ввел имя вашего бота, но еще не начал печатать запрос (например: Поиск картинок... или Введите запрос...).
    3. После отправки текста инлайн-режим будет активирован.
Пример работы инлайн-режима.

3.3 Настройки приватности и групп

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

  • Режим приватности (/setprivacy)

  • Включен (Enabled): Бот будет получать только те сообщения, которые являются командами (/start), ответами на сообщения бота или упоминаниями (@имя_бота). Это режим по умолчанию.

  • Выключен (Disabled): Бот будет получать все сообщения, отправленные в группу. Включайте этот режим, только если вашему боту действительно нужно читать весь чат (например, для модерации или сбора статистики).

  • Добавление в группы (/setjoingroups) Позволяет разрешить или запретить добавление вашего бота в группы. Если бот предназначен только для личных сообщений, эту опцию можно отключить.

3.4 Опасная зона (Действия с токеном)

  • Отозвать текущий токен (/revoke) Если вы случайно "засветили" ваш токен (например, опубликовали его на GitHub), немедленно используйте эту команду. BotFather сгенерирует новый токен, а старый перестанет работать. Не забудьте обновить токен в конфигурации вашего приложения

Опубликовано под лицензией MIT.