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

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

Описание

Иногда возникает необходимость, чтобы пользователь перешел по ссылке в определенный диалог. ВКонтакте использует сервис коротких URL vk.me, который перенаправляет пользователей в указанный диалог.

Ссылка имеет формат http://vk.me/{group_name}. Здесь group_name — это идентификатор сообщества. Например, vk.me/exampleclub.

Кроме того, вы можете передать в ссылке произвольный параметр ref. Это полезно использовать для отслеживания эффективности ссылок, размещенных в разных каналах, или привязки пользователя к сеансу или аккаунту во внешнем приложении. В зависимости от переданного параметра можно варьировать ответы бота в сообществе.

Ссылка с дополнительными параметрами примет вид:

http://vk.me/{group_name}?ref={ref}

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

Диалог с ботом ВКонтакте начинается с сообщения начать. Поэтому для корректной работы сценария состояние start должно быть задано как:

state: start
q!: начать
script:
var params;
if ($request.rawRequest.object.message && $request.rawRequest.object.message.ref) {
params = $request.rawRequest.object.message.ref;
$reactions.answer(params);
} else $reactions.answer("Параметр не получил");

Произвольный параметр вернется в переменную $request.rawRequest.object.message.ref по нажатию на кнопку начать.

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

http://vk.me/exampleBot?ref=TEST

В этом случае пользователь будет автоматически перенаправлен в чат с ботом exampleBot. После того, как пользователь нажмет на кнопку Начать, сработает паттерн q!: начать. В теге script проверяем получили ли мы необходимый параметр. Если получили, то выводим его в качестве ответа бота: TEST. Иначе выведем сообщение: Параметр не получил.