Руководство разработчика

Добро пожаловать в документацию Znakora Bot API 3.0. Это HTTP-интерфейс, который позволяет подключать ботов к нашей системе обмена сообщениями. Боты могут отправлять текстовые сообщения, медиафайлы, использовать интерактивные кнопки и реагировать на действия пользователей.

Базовый URL для всех запросов:

https://znakora.ru/api/bot<TOKEN>/METHOD_NAME

Все запросы должны выполняться методом POST. Параметры можно передавать как JSON.

Авторизация

Каждый бот идентифицируется токеном, который выдается при его создании. Токен выглядит примерно так: 123456:AAHE....

Как получить токен:

  1. Откройте приложение Znakora.
  2. Нажмите кнопку создания чата (+).
  3. Выберите тип "Бот".
  4. Укажите имя и уникальную ссылку (должна заканчиваться на _bot).
  5. Скопируйте токен из первого системного сообщения.

Полный пример (Python)

Простой Echo-бот, который отвечает на команды и пересылает текст обратно. Использует библиотеку requests.

import requests import time # Вставьте сюда ваш токен TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" API_URL = f"https://znakora.ru/api/bot{TOKEN}" def api(method, data=None): try: url = f"{API_URL}/{method}" res = requests.post(url, json=data) return res.json() except Exception as e: print(f"Ошибка соединения: {e}") return {} # 1. Удаляем вебхук, чтобы использовать Long Polling api("deleteWebhook") print("Бот запущен...") while True: try: # Запрос обновлений (Long Polling) updates = api("getUpdates") if updates.get("result"): for u in updates["result"]: # Если пришло сообщение if "message" in u: msg = u["message"] chat_id = msg["chat"]["id"] text = msg.get("text", "") if text == "/start": api("sendMessage", { "chat_id": chat_id, "text": "Привет! Я бот Znakora." }) else: api("sendMessage", { "chat_id": chat_id, "text": f"Вы написали: {text}" }) except Exception as e: time.sleep(5)

Методы: Сообщения

POST sendMessage

Используйте этот метод для отправки текстовых сообщений.

ПараметрТипОписание
chat_id Int Уникальный идентификатор чата или пользователя.
text String Текст отправляемого сообщения (до 4096 символов).
reply_markup JSON Объект клавиатуры (Inline или Reply).
POST sendPhoto

Используйте этот метод для отправки фотографий.

ПараметрТипОписание
chat_id Int ID чата.
photo String URL фотографии или файл (при использовании multipart/form-data).
caption String Подпись к фотографии (опционально).
POST editMessageText

Используйте этот метод для редактирования текста сообщений, отправленных ботом.

ПараметрТипОписание
message_id String Идентификатор сообщения для редактирования.
text String Новый текст сообщения.
POST deleteMessage

Используйте этот метод для удаления сообщения.

ПараметрТипОписание
message_id String Идентификатор сообщения.

Методы: Обновления

POST getUpdates

Используйте этот метод для получения входящих обновлений с помощью Long Polling. Запрос будет удерживаться сервером до 30 секунд, если нет новых данных.

{ "timeout": 30 }
POST setWebhook

Укажите URL, на который сервер будет отправлять HTTPS POST запросы при поступлении новых сообщений (Push-модель).

ПараметрТипОписание
url String HTTPS URL вашего сервера.
POST deleteWebhook

Используйте этот метод, чтобы удалить интеграцию с Webhook и переключиться обратно на getUpdates (Long Polling).

POST answerCallbackQuery

Отправляет ответ на нажатие Inline-кнопки (callback_query). Этот метод убирает индикатор "загрузки" на кнопке у пользователя.

ПараметрТипОписание
callback_query_id String ID запроса, полученный в объекте Update.
text String Текст всплывающего уведомления (опционально).