TalkFast Bot API

Создавай ботов для автоматических ответов, интеграций и розыгрышей прямо в мессенджере

API v1.0 — 2026

Быстрый старт

Создай бота за 4 шага

1
Открой Настройки → Мои боты в приложении
2
Нажми + и введи имя бота
3
Скопируй токен — он показывается только один раз!
4
Отправляй запросы через API или настрой webhook
Базовый URL всех запросов: https://talkfast.ru/api.php

Аутентификация

Все запросы бота авторизуются через токен. Токен — это секретная строка, выданная при создании бота.

Никому не передавай токен. Если токен скомпрометирован, пересоздай его в настройках бота.

Передавай токен как параметр token в каждом POST-запросе.

Отправка сообщений

POST bot_send_message
Отправить сообщение пользователю или в группу
ПараметрОписаниеОбязательно
tokenТокен ботаДа
chat_idUsername получателя или group_xxxДа
textТекст сообщенияДа*
typeТип: text, image, video, file, stickerНет (text)
parse_modeФормат: plain, markdown, htmlНет (plain)
reply_to_message_idID сообщения для ответаНет
captionПодпись к файлуНет
reply_markupJSON inline-клавиатурыНет
POST /api.php?action=bot_send_message

token=YOUR_BOT_TOKEN
chat_id=username
text=Привет! Я бот 😊
parse_mode=markdown

* text обязателен для типа text. Для image/video/file — передай файл через multipart.

Webhook

Webhook позволяет получать обновления в реальном времени. Когда пользователь пишет боту, сервер отправит POST-запрос на твой URL.

POST set_bot_webhook
Настроить URL для получения обновлений
ПараметрОписаниеОбязательно
tokenТокен ботаДа
webhook_urlURL для получения обновленийНет (если уже задан — не трогается)
Опционально
webhook_secretСекретная строка для проверкиНет (генерируется сам)
Ответ:
{
  "status": "success",
  "webhook_url": "https://your-server.com/webhook",
  "webhook_secret": "a1b2c3..."
}
Секрет создаётся при первом вызове и дальше остаётся прежним — ответ всегда возвращает актуальный webhook_secret. Можно вызвать только с token, без остальных параметров: URL не изменится, вернётся текущий секрет.
POST get_bot_webhook_logs
Получить текущий webhook_url и webhook_secret
ПараметрОписаниеОбязательно
tokenТокен ботаДа
Ответ:
{
  "status": "success",
  "webhook_url": "https://your-server.com/webhook",
  "webhook_secret": "a1b2c3..."
}

Формат входящего обновления

{
  "update_id": 1690000000,
  "message": {
    "message_id": 42,
    "from": { "username": "user123" },
    "chat": { "id": "user123" },
    "text": "Привет",
    "date": 1690000000
  }
}

Заголовки запроса

ЗаголовокОписание
Content-Typeapplication/json
X-TalkFast-SecretСекретная строка для верификации запроса

Проверка секрета у себя

<?php
$secret = 'ТОТ_ЖЕ_SECRET_ИЗ_ОТВЕТА';
$got = $_SERVER['HTTP_X_TALKFAST_SECRET'] ?? '';
if (!hash_equals($secret, $got)) { http_response_code(403); exit; }
$data = json_decode(file_get_contents('php://input'), true);
$text = $data['message']['text'] ?? '';
header('Content-Type: application/json');
echo json_encode(['text' => 'Echo: ' . $text], JSON_UNESCAPED_UNICODE);

Формат ответа webhook

{
  "text": "Привет! Чем могу помочь?"
}
Если webhook вернёт JSON с полем "text", бот отправит этот текст как ответ.

Нажатие inline-кнопки (callback_query)

Когда пользователь жмёт кнопку с callback_data, сервер шлёт на webhook_url:

{
  "update_id": 1690000001,
  "callback_query": {
    "id": "cb42_a1b2c3d4e5",
    "from": { "username": "user123" },
    "chat": { "id": "group_xxx" },
    "data": "menu_works",
    "message": { "message_id": 42, "text": "Нажми кнопку" }
  }
}
<?php
$got = $_SERVER['HTTP_X_TALKFAST_SECRET'] ?? '';
if (!hash_equals('ТОТ_ЖЕ_SECRET', $got)) { http_response_code(403); exit; }
$data = json_decode(file_get_contents('php://input'), true);
$cb = $data['callback_query'] ?? null;
if ($cb !== null) {
  header('Content-Type: application/json');
  echo json_encode([
    'text' => 'Нажато: ' . $cb['data'],
    'reply_markup' => ['inline_keyboard' => [[['text' => 'Назад', 'callback_data' => 'back']]]],
  ], JSON_UNESCAPED_UNICODE);
  exit;
}
Ответ с text приходит пользователю как сообщение бота; с reply_markup — сразу с новыми кнопками. Кнопки с url / Mini App открываются прямо в приложении.

Inline-клавиатуры

Добавляй кнопки под сообщениями через параметр reply_markup.

Формат

{
  "inline_keyboard": [
    [
      { "text": "Кнопка 1", "callback_data": "btn1" },
      { "text": "Кнопка 2", "callback_data": "btn2" }
    ],
    [
      { "text": "Ссылка", "url": "https://example.com" }
    ]
  ]
}
ПолеОписание
textТекст кнопки
callback_dataДанные, возвращаемые при нажатии
urlСсылка, открываемая при нажатии

Управление ботом

POST create_bot
Создать нового бота (вызывается из приложения)
ПараметрОписание
session_tokenТокен сессии пользователя
nameИмя бота
descriptionОписание (необязательно)
POST get_my_bots
Получить список своих ботов
POST get_bot_info
Получить полную информацию о боте (включая токен)
ПараметрОписание
session_tokenТокен сессии
bot_usernameUsername бота
POST update_bot
Обновить настройки бота
ПараметрОписание
tokenТокен бота
bot_usernameUsername бота
nameНовое имя
descriptionОписание
aboutТекст для пользователей
is_enabled1/0 — включён/выключен
webhook_urlURL webhook
POST delete_bot
Удалить бота (необратимо)
POST regenerate_bot_token
Пересоздать токен бота (старый перестанет работать)
POST public_bot_info
Публичная информация о боте (без авторизации)
ПараметрОписание
bot_usernameUsername бота

Команды

Боты поддерживают пользовательские команды (как /start, /help и т.д.).

POST set_bot_commands
Установить список команд бота
ПараметрОписание
tokenТокен бота
bot_usernameUsername бота
commandsJSON массив команд

Формат commands

[
  {
    "command": "start",
    "description": "Начать работу",
    "handler_type": "static",
    "handler_data": "Привет! Я бот. Напиши /help",
    "buttons": [
      [{ "text": "Помощь", "callback_data": "help" }]
    ]
  },
  {
    "command": "help",
    "description": "Список команд",
    "handler_type": "static",
    "handler_data": "Доступные команды:\\n/start — начало\\n/help — помощь"
  }
]

Типы обработчиков

handler_typeОписание
staticАвтоматический ответ из handler_data
webhookПересылка на webhook_url бота
regexСовпадение по регулярному выражению

Статистика

POST get_bot_stats
Получить статистику бота
ПараметрОписание
tokenТокен бота
bot_usernameUsername бота
daysКоличество дней (по умолчанию 30)
{
  "status": "success",
  "stats": [
    { "stat_date": "2026-09-01", "messages_received": 42, "messages_sent": 38, "unique_users": 15 }
  ],
  "totals": { "recv": 1250, "sent": 1180, "active_days": 30 }
}