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

Передача параметров

Описание

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

Такие параметры передаются в ссылке бота Telegram https://t.me/<bot username>?start=<test> в виде запроса /start text. Переход по ссылке с установленным параметром откроет личный диалог с ботом, а вместо поля ввода будет находиться кнопка Запустить.

Как только пользователь нажмет кнопку Запустить, бот получает от этого пользователя сообщение в виде /start text, где text — это значение параметра start, переданного в ссылке.

Использование в сценарии

Рассмотрим пример получения параметра из сценария. Произвольный параметр, указанный в ссылке, возвращается в переменную $parseTree.Text[0].value.

state: Start
q!: *start $Text $weight<+0.5>
a: Вот: {{$parseTree.Text[0].value}}

Допустим пользователь перейдет по следующей ссылке:

https://t.me/exampleBot?start=test

В этом случае пользователь будет автоматически перенаправлен в чат с ботом exampleBot. После того, как пользователь нажмет на кнопку Запустить, сработает паттерн q!: *start $Text $weight<+0.5>. Бот выведет сообщение Вот: test.

Вы можете проверить, получили ли вы необходимые параметры:

var params;

if ($parseTree._Text) {
params = $parseTree.Text[0].value;
} else if ...