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

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

Описание​

Иногда возникает необходимость, чтобы бот получил от пользователя дополнительные параметры при запуске. Например, это может быть команда, которая запустит бота, или токен аутентификации для подключения учетной записи 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 ...