Документация Bot API
HTTP-интерфейс для создания ботов BuryGram. Совместим с Telegram Bot API: те же методы, параметры и формат ответов. Ниже - всё, что реально поддерживается на этом сервере.
https://api.bg.buryspb.ru1. Получение токена
Бот создаётся через @BotFather прямо в клиенте BuryGram:
- Открой чат с
@BotFather. - Отправь
/newbot. - Задай отображаемое имя, затем username (традиционно заканчивается на
bot). - BotFather вернёт токен вида
123456789:AA...xyz.
Токен - секрет. Не публикуй его и не коммитьте в git; при утечке перевыпусти через BotFather.
2. Авторизация и URL
Токен передаётся в пути запроса:
https://api.bg.buryspb.ru/bot<TOKEN>/<method>
Пример:
curl https://api.bg.buryspb.ru/bot123456789:AA...xyz/getMe
Токен можно передавать и заголовком Authorization: Bearer <TOKEN> (поддерживается наряду с путём).
3. Запросы и ответы
Параметры можно передавать любым из способов:
- строка запроса (query string);
application/x-www-form-urlencoded;application/json;multipart/form-data- для загрузки файлов.
Успешный ответ:
{"ok": true, "result": { ... }}
Ошибка:
{"ok": false, "error_code": 400, "description": "CHAT_ID_INVALID"}
4. Получение обновлений: getUpdates
Long polling. Параметры:
| Параметр | Описание |
|---|---|
offset | ID последнего обработанного обновления + 1 |
limit | Максимум обновлений за запрос |
timeout | Таймаут long polling в секундах |
allowed_updates | JSON-массив типов обновлений |
curl "https://api.bg.buryspb.ru/bot<TOKEN>/getUpdates?timeout=30"
Если у бота активен вебхук, getUpdates вернёт 409 CONFLICT.
5. Вебхуки
Вместо polling можно получать обновления POST-запросами на твой HTTPS-сервер.
| Метод | Назначение |
|---|---|
setWebhook | url, опционально secret_token, allowed_updates, drop_pending_updates |
getWebhookInfo | текущий статус вебхука |
deleteWebhook | отключить вебхук |
curl -X POST "https://api.bg.buryspb.ru/bot<TOKEN>/setWebhook" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/hook","secret_token":"my-secret"}'
Вебхук и getUpdates взаимоисключающие.
6. Отправка сообщений: sendMessage
| Параметр | Описание |
|---|---|
chat_id | ID чата/пользователя (обязателен) |
text | Текст до 4096 символов |
parse_mode | HTML, Markdown или MarkdownV2 |
entities | JSON-массив сущностей разметки |
reply_markup | JSON: inline-клавиатура и т.п. |
reply_to_message_id | ID сообщения для ответа |
disable_web_page_preview | без превью ссылок |
disable_notification | без звука |
curl -X POST "https://api.bg.buryspb.ru/bot<TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id":123456789,"text":"<b>Привет</b>","parse_mode":"HTML"}'
Также есть sendRichMessage - расширенный формат сообщений.
7. Медиа
Методы: sendPhoto, sendAnimation, sendAudio, sendDocument, sendLivePhoto, sendSticker, sendVideo, sendVideoNote, sendVoice.
Файл передаётся как multipart/form-data (поле с именем метода, например photo) либо по file_id. Дополнительно: caption, parse_mode, reply_markup, reply_to_message_id.
curl -X POST "https://api.bg.buryspb.ru/bot<TOKEN>/sendPhoto" \
-F chat_id=123456789 \
-F photo=@cat.jpg \
-F caption="Кот"
8. Контакты и геолокация
sendContact-chat_id,phone_number,first_name,last_namesendLocation-chat_id,latitude,longitudesendVenue-chat_id,latitude,longitude,title,address
9. Редактирование и удаление
editMessageText-chat_id,message_id,text,parse_mode,reply_markupdeleteMessage-chat_id,message_id
10. Инлайн-кнопки и callback
Кнопки задаются в reply_markup:
{"inline_keyboard":[[{"text":"Нажми","callback_data":"btn1"}]]}
При нажатии приходит callback_query; ответьте методом answerCallbackQuery (callback_query_id, text, show_alert, url).
11. Команды бота
setMyCommands-commands(JSON-массив{"command","description"})getMyCommandsdeleteMyCommands
{"commands":[{"command":"start","description":"Запуск"}]}
13. Файлы
getFile принимает file_id и возвращает file_path. Скачать файл:
https://api.bg.buryspb.ru/file/bot<TOKEN>/<file_path>
14. Web Apps и inline-режим
answerWebAppQuery-web_app_query_id,resultsavePreparedInlineMessage-user_id,result
16. Эфемерные сообщения
Нестандартное расширение: сообщения, видимые только получателю (например, в Web App). Используются sendMessage с эфемерной целью и методы:
editEphemeralMessageTexteditEphemeralMessageMediaeditEphemeralMessageCaptioneditEphemeralMessageReplyMarkupdeleteEphemeralMessage
17. Лимиты
| Что | Значение |
|---|---|
| Длина текста | 4096 символов |
| Размер загружаемого файла | 25 МБ |
| Режимы разметки | HTML, Markdown, MarkdownV2 |
| Long polling | до ~50 секунд |
18. Примеры
curl - проверка токена:
curl "https://api.bg.buryspb.ru/bot<TOKEN>/getMe"
Python:
import requests
TOKEN = "123456789:AA...xyz"
BASE = "https://api.bg.buryspb.ru/bot" + TOKEN
r = requests.post(BASE + "/sendMessage", json={
"chat_id": 123456789,
"text": "Привет из бота!",
})
print(r.json())
Вебхук (Python/Flask, псевдокод):
@app.post("/hook")
def hook():
upd = request.json
chat = upd["message"]["chat"]["id"]
requests.post(BASE + "/sendMessage",
json={"chat_id": chat, "text": "Получил!"})
return {"ok": True}
19. Ошибки
| error_code | Причина |
|---|---|
| 400 | Неверные параметры (например, CHAT_ID_INVALID, FILE_TOO_BIG) |
| 401 | ACCESS_TOKEN_INVALID - неверный токен |
| 404 | METHOD_NOT_FOUND - метод не поддерживается |
| 409 | CONFLICT - например, getUpdates при активном вебхуке |
| 501 | Метод не реализован |
20. Полный список методов
| Метод | Описание |
|---|---|
getMe | информация о боте |
getUpdates | получение обновлений (long polling) |
setWebhook / deleteWebhook / getWebhookInfo | управление вебхуком |
sendMessage / sendRichMessage | отправка сообщения |
sendPhoto, sendAnimation, sendAudio, sendDocument, sendLivePhoto, sendSticker, sendVideo, sendVideoNote, sendVoice | отправка медиа |
sendContact, sendLocation, sendVenue | контакт / геолокация / место |
editMessageText, deleteMessage | редактирование и удаление |
answerCallbackQuery | ответ на нажатие кнопки |
getFile | получение пути к файлу |
setMyCommands, getMyCommands, deleteMyCommands | команды бота |
setChatMenuButton, getChatMenuButton | кнопка меню |
setUserEmojiStatus | эмодзи-статус |
answerWebAppQuery, savePreparedInlineMessage | Web Apps / inline |
giftPremiumSubscription | подарить Premium |
getMyStarBalance, getStarTransactions | баланс и история звёзд бота |
sendInvoice, createInvoiceLink | создание инвойса и ссылки на оплату |
answerPreCheckoutQuery, answerShippingQuery | ответы на pre-checkout / shipping |
refundStarPayment | возврат звёзд по charge id |
savePreparedKeyboardButton | сохранить prepared-кнопку |
editEphemeralMessageText, editEphemeralMessageMedia, editEphemeralMessageCaption, editEphemeralMessageReplyMarkup, deleteEphemeralMessage | эфемерные сообщения |
Платёжные методы (sendInvoice, createInvoiceLink, answerPreCheckoutQuery, answerShippingQuery, refundStarPayment, savePreparedKeyboardButton) доступны. sendInvoice/createInvoiceLink создают инвойс и ссылку https://bg.buryspb.ru/pay/<id>; нативная форма оплаты в клиенте пока не подключена (это следующий этап).