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

Написать человеку первым — startChat

В Telegram бот не может начать диалог сам. В Лизе может, но только с разрешения: это нужно для CRM-сценариев («спасибо за покупку, вот ссылка в закрытый клуб»). startChat — расширение Liza, в Telegram его нет.

Разрешение

По умолчанию бот писать первым не может — startChat отвечает 403 Forbidden: this bot is not allowed to start chats. Разрешение включает администратор Liza для конкретного бота — обратитесь в поддержку и назовите логин бота.

Как это выглядит у человека​

Бот вызвал startChat и сразу отправил сообщение. У человека в списке чатов появляется новый чат с ботом — «Запрос нового чата».

Новый чат от бота в списке чатов: «Запрос нового чата»

Что вызвал бот — POST https://bot.tech.liza.ru/bot<ТОКЕН>/startChat:

{ "user_id": "@testuser:liza.local" }

Ответ — объект Chat:

{ "ok": true,
"result": { "id": 1910652157, "type": "private",
"username": "testuser", "first_name": "testuser" } }

Человек открывает чат, приглашение принимается, и он видит сообщение бота. Кнопка с url открывает ссылку прямо в Лизе — удобно для оплаты и входа в закрытый клуб.

Чат с ботом открыт: сообщение и кнопка-ссылка

Что вызвал бот — POST https://bot.tech.liza.ru/bot<ТОКЕН>/sendMessage:

{
"chat_id": 1910652157,
"parse_mode": "HTML",
"text": "<b>Спасибо за покупку подписки!</b>\nВаша персональная ссылка в закрытый клуб — нажмите кнопку ниже.",
"reply_markup": { "inline_keyboard": [[
{ "text": "🔑 Войти в клуб", "url": "https://example.org/club/invite-7f3a" }
]] }
}

Правила​

  • Кому писать. Нужен логин человека в Лизе — полный Matrix ID вида @имя:сервер. Сохраняйте from.liza_user_id, когда человек пишет боту или нажимает кнопку, и храните его в карточке клиента в своей CRM.
  • Повторный вызов. Для того же человека вернётся тот же чат. Если человек уже сам писал боту, вернётся существующий личный чат.
  • Лимит. Не больше 50 новых чатов в сутки на бота; сверх лимита — 429 Too Many Requests: daily limit of new chats reached (retry_after — 3600 с). Повторные вызовы для уже открытых чатов в лимит не входят.
  • Только людям. Писать первым другим ботам нельзя — 400 bots can't start chats with bots.
  • Человек отказался. Если человек ушёл из личного чата с ботом, отклонил приглашение или удалил бота, startChat и отправки в этот чат отвечают 403 bot was blocked by the user — пока человек снова сам не позовёт бота.
  • Нет такого человека. Несуществующий user_id — 400 user not found; user_id не в формате @user:server — 400.