Передача UUID через Telegram, Viber та віджет
Короткий огляд способів передачі UUID (або іншого ідентифікатора користувача) в бота з різних каналів.
Порівняльна таблиця
| Канал | Спосіб передачі | Доступ у сценарії | Обмеження |
|---|---|---|---|
| Віджет | params_from_site або user_id | {{uuid}} / {{user_id}} | — |
| Telegram | Deeplink ?start= | {{messenger_input_param}} | До 64 символів |
| Viber | Deeplink context= | {{messenger_input_param}} | — |
Примітка: UUID зазвичай 36 символів (з дефісами) або 32 символи (без). У межах ліміту Telegram.
1. Віджет
Варіант A: через params_from_site
kw('init', {
bot_id: 1,
params_from_site: {
uuid: "550e8400-e29b-41d4-a716-446655440000"
}
});
У сценарії: {{uuid}}
Варіант B: через user_id (як chat_id)
kw('init', {
bot_id: 1,
user_id: "550e8400-e29b-41d4-a716-446655440000"
});
- Якщо вказати
user_id, він використовується якchat_idвіджету - UUID зберігається в cookie на 30 днів (якщо не передати — генерується автоматично)
Зміна UUID під час роботи
kw_event('kwsetparamsfromsite', {
params_from_site: { uuid: "новий-uuid" }
});
2. Telegram
Deeplink
https://t.me/BotUsername?start=550e8400-e29b-41d4-a716-446655440000
або без дефісів (32 символи):
https://t.me/BotUsername?start=550e8400e29b41d4a716446655440000
Отримання UUID у сценарії
- Додайте action
get_commandна початку потоку - UUID буде в константі
{{messenger_input_param}}
// В action jail або умові
const uuid = j.messenger_input_param || '';
Обмеження
- Максимум 64 символи у параметрі
start - Для підписки на нотифікації потрібно натиснути кнопку «Почати»
3. Viber
Deeplink
viber://pa?chatURI=URI_вашого_бота&context=550e8400-e29b-41d4-a716-446655440000
chatURI — URI бота у Viber (наприклад, mybot).
Опційно можна передати text=Start! — текст у поле вводу. Без text посилання все одно запустить діалог.
Отримання UUID у сценарії
- Додайте action
get_command - UUID буде в
{{messenger_input_param}}(як і в Telegram)
Єдиний сценарій для всіх каналів
Щоб отримати UUID незалежно від каналу:
| Канал | Де взяти UUID |
|---|---|
| Віджет | {{uuid}} з params_from_site |
| Telegram | {{messenger_input_param}} після deeplink |
| Viber | {{messenger_input_param}} після deeplink |
У умові або action jail:
const uuid = j.uuid || j.messenger_input_param || '';