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

Работа с Telegram Bot API

Telegram предоставляет Bot API для управления поведением ботов. С помощью доступных методов API вы можете настраивать логику ботов для данного канала.

Например, вы можете:

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

Отправка сообщений

С помощью метода sendMessage вы можете отправлять сообщения от клиента в ваш личный аккаунт Telegram и отвечать клиенту прямо в диалоге с ботом.

В личный аккаунт

Чтобы отправить сообщение клиента в личный аккаунт, добавьте в сценарий:

  1. Блок text to $var, чтобы записать сообщение клиента в переменную.

  2. Блок HTTP-запрос:

    • Выберите метод GET.

    • В поле URL вставьте https://api.telegram.org/bot<token>/sendMessage, где <token> — токен из последнего сообщения бота BotFather при создании бота в Telegram. Это значение вида 5949769123:AAFVkGudasD-qdWscjxJsmlqphhOcD59eXs.

    • Скопируйте JSON-объект ниже и вставьте его на вкладку BODY:

      {
      "chat_id": 223001234,
      "text": "Клиент $rawRequest.message.from.id: $message"
      }

      Здесь:

      • 223001234 — пример идентификатора вашего диалога с ботом. Вы можете узнать его через специального бота.
      • $rawRequest.message.from.id — идентификатор диалога клиента с ботом из переменной $rawRequest. Он также имеет вид 223001235.
      • $message — переменная, которая содержит текст сообщения клиента.

Опубликуйте сценарий и протестируйте отправку сообщений. В результате успешного выполнения HTTP-запроса вы получите сообщение от бота в формате Клиент 223001235: Сообщение.

В диалог клиента с ботом

Чтобы отправить сообщение клиенту в диалог с ботом из личного аккаунта, после HTTP-запроса добавьте в сценарий:

  1. Блок num to $var, чтобы ввести идентификатор клиента, которому вы отправляете сообщение.

  2. Блок Условия с выражением $currentChatId = $number, чтобы сохранить идентификатор в переменную.

  3. Блок text to $var, чтобы записать ваше сообщение в переменную.

  4. Блок HTTP-запрос:

    • Выберите метод GET.

    • В поле URL вставьте https://api.telegram.org/bot<token>/sendMessage, где <token> — токен из последнего сообщения бота BotFather при создании бота в Telegram. Это значение вида 5949769123:AAFVkGudasD-qdWscjxJsmlqphhOcD59eXs.

    • Скопируйте JSON-объект ниже и вставьте его на вкладку BODY:

      {
      "chat_id": $currentChatId,
      "text": "Оператор: $text"
      }

      Здесь:

      • $currentChatId — идентификатор диалога клиента с ботом.
      • $text — переменная, которая содержит текст вашего сообщения.

Опубликуйте сценарий после изменений и протестируйте бота. После того как вы получите сообщение от бота в формате Клиент 223001235: Сообщение, введите идентификатор клиента из этого сообщения. В следующем сообщении введите ответ клиенту. Он получит ваше сообщение в диалог с ботом в формате Оператор: Сообщение.

Удаление сообщений

С помощью метода deleteMessage вы можете удалить сообщение из диалога с ботом. Этот метод можно использовать, например, в ботах с авторизацией по логину и паролю, чтобы не хранить пароль в истории сообщений.

Чтобы удалить сообщение, добавьте в сценарий блок HTTP-запрос:

  • Выберите метод GET.

  • В поле URL вставьте https://api.telegram.org/bot<token>/deleteMessage, где <token> — токен из последнего сообщения бота BotFather при создании бота в Telegram. Это значение вида 5949769123:AAFVkGudasD-qdWscjxJsmlqphhOcD59eXs.

  • Скопируйте JSON-объект ниже и вставьте его на вкладку BODY:

    {
    "chat_id": $rawRequest.message.from.id,
    "message_id": $rawRequest.message.message_id
    }

    Здесь:

    • $rawRequest.message.from.id — идентификатор диалога пользователя с ботом из переменной $rawRequest. Он имеет вид 223001234.
    • $rawRequest.message.message_id — идентификатор удаляемого сообщения из переменной $rawRequest. Он имеет вид 67.

В результате успешного выполнения HTTP-запроса сообщение автоматически удаляется из диалога с ботом.