Работа с Telegram Bot API
Telegram предоставляет Bot API для управления поведением ботов. С помощью доступных методов API вы можете настраивать логику ботов для данного канала.
Например, вы можете:
Отправка сообщений
С помощью метода sendMessage вы можете отправлять сообщения от клиента в ваш личный аккаунт Telegram и отвечать клиенту прямо в диалоге с ботом.
В личный аккаунт
Чтобы отправить сообщение клиента в личный аккаунт, добавьте в сценарий:
-
Блок text to $var, чтобы записать сообщение клиента в переменную.
-
Блок 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-запроса добавьте в сценарий:
-
Блок num to $var, чтобы ввести идентификатор клиента, которому вы отправляете сообщение.
-
Блок Условия с выражением
$currentChatId = $number
, чтобы сохранить идентификатор в переменную. -
Блок text to $var, чтобы записать ваше сообщение в переменную.
-
Блок 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-запроса сообщение автоматически удаляется из диалога с ботом.