OnyxGram
Главная О проекте Bot API FAQ Безопасность

OnyxGram Developers

Bot API

HTTP API для ботов OnyxGram. Формат похож на Telegram Bot API: запросы идут на адрес https://dev-angel-7553.dev/bot<token>/METHOD, ответы приходят в JSON с полями ok и result.

База getMe, getUpdates, webhook-и, отправка сообщений
Управление copyMessage, forwardMessage, editMessageText, deleteMessage

Что добавлено сейчас

  • editMessageText — редактирование текста отправленного ботом сообщения.
  • deleteMessage — удаление сообщения бота из диалога.
  • copyMessage — копирование поддерживаемого сообщения без подписи пересылки.
  • forwardMessage — пересылка поддерживаемого сообщения.
  • setWebhook / getWebhookInfo / deleteWebhook — доставка update-ов на HTTPS endpoint.
  • sendChatAction — индикатор действия, например typing.
  • getChat — базовая информация о чате.

Методы

getMeпроверить токен и получить данные бота
getUpdateslong polling, offset/limit/timeout
sendMessageтекст до 4096 символов
copyMessageкопия из кэша Bot API
forwardMessageпересылка из кэша Bot API
sendChatActiontyping и другие действия клиента
getChatprivate/group/supergroup
editMessageTextобновить текст сообщения
deleteMessageудалить сообщение
setWebhookHTTPS webhook для update-ов
deleteWebhookвыключить webhook
getWebhookInfoстатус webhook-а и ошибки доставки

Минимальный пример

Бот получает новые сообщения через getUpdates и отвечает тем же текстом.

import time
import requests

TOKEN = "PASTE_BOT_TOKEN_HERE"
API = f"https://dev-angel-7553.dev/bot{TOKEN}"
offset = 0

while True:
    updates = requests.post(
        f"{API}/getUpdates",
        json={"offset": offset, "timeout": 25, "limit": 100},
        timeout=35,
    ).json()["result"]

    for update in updates:
        offset = update["update_id"] + 1
        message = update.get("message") or {}
        chat_id = message.get("chat", {}).get("id")
        text = message.get("text")
        if chat_id and text:
            requests.post(f"{API}/sendMessage", json={
                "chat_id": chat_id,
                "text": f"Ты написал: {text}",
            })

    time.sleep(0.2)

Пример со всеми основными функциями

Показывает отправку текста, редактирование, действие в чате, копирование и удаление.

import requests
import time

TOKEN = "PASTE_BOT_TOKEN_HERE"
CHAT_ID = 123456789
API = f"https://dev-angel-7553.dev/bot{TOKEN}"

def call(method, payload=None):
    response = requests.post(f"{API}/{method}", json=payload or {}, timeout=30)
    data = response.json()
    if not data.get("ok"):
        raise RuntimeError(data)
    return data["result"]

me = call("getMe")
print("bot:", me["username"])

call("sendChatAction", {"chat_id": CHAT_ID, "action": "typing"})

msg = call("sendMessage", {
    "chat_id": CHAT_ID,
    "text": "Привет из OnyxGram Bot API",
})

call("editMessageText", {
    "chat_id": CHAT_ID,
    "message_id": msg["message_id"],
    "text": "Текст обновлён через editMessageText",
})

copy = call("copyMessage", {
    "chat_id": CHAT_ID,
    "from_chat_id": CHAT_ID,
    "message_id": msg["message_id"],
})

time.sleep(2)
call("deleteMessage", {
    "chat_id": CHAT_ID,
    "message_id": copy["message_id"],
})

Webhook

Webhook должен быть HTTPS. Если webhook включён, OnyxGram будет отправлять update-ы POST-запросом на указанный URL.

curl -X POST "https://dev-angel-7553.dev/bot<TOKEN>/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/onyxgram-webhook"}'

curl "https://dev-angel-7553.dev/bot<TOKEN>/getWebhookInfo"

curl -X POST "https://dev-angel-7553.dev/bot<TOKEN>/deleteWebhook"
OnyxGram is not affiliated with Telegram FZ-LLC.
Privacy Policy Terms of Service О проекте Bot API FAQ Безопасность