auto_awesomeВозможности new_releasesНовинки business_centerДля бизнеса shieldБезопасность smart_toyБоты helpВопросы languageВеб-версия downloadСкачать policyКонфиденциальность
smart_toy
Платформа ботов

Создавайте ботов
за 5 минут

Открытый Bot API и асинхронный Python SDK в стиле aiogram — хэндлеры, фильтры, инлайн-кнопки, FSM. Готовый каталог ботов. Автоматизируйте что угодно — от напоминалок до нейросетевых ассистентов.

apiBot API
webhookWebhooks
codePython SDK
boltPolling или webhook
chat
send
psychology
descriptionmy_bot.py
1from onemix_bot import Bot, Dispatcher 2from onemix_bot.filters import CommandStart 3 4bot = Bot(token="YOUR_TOKEN") 5dp = Dispatcher() 6 7@dp.message(CommandStart()) 8async def start(msg): 9 await msg.answer("Привет! 👋") 10 11@dp.message() 12async def echo(msg): 13 await msg.answer(msg.text) 14 15# Запускаем бота (long-polling) 16dp.run_polling(bot)
api
24
эндпоинтов API
code
Python
SDK-библиотека
bolt
<100ms
задержка сообщений
forum
пользователей на бота
Каталог

Опубликованные боты

Лучшие проекты сообщества. Запустите чат с ботом в один тап или опубликуйте своего через @botfather.

search
appsВсе
verifiedОфициальные
psychologyИИ
buildУтилиты
sports_esportsРазвлечения
business_centerБизнес
newspaperНовости
autorenewЗагружаем каталог…
SDK и документация

Полное руководство по Bot API

От первого бота до продакшена с вебхуками и OpenAI-интеграцией. Всё что нужно — на одной странице.

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

Создание бота для ONEMIX занимает буквально несколько минут:

lightbulb
Начните чат с @botfather в приложении и отправьте команду /newbot. Следуйте подсказкам — получите токен и запускайте.

Требования:

  • Аккаунт в ONEMIX Messenger
  • Сервер для бота (VPS, облако или localhost для разработки)
  • Python 3.8 или выше

Установка

terminalbash
pip install onemix-bot

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

descriptionquickstart.py
from onemix_bot import Bot, Dispatcher
from onemix_bot.filters import CommandStart

# api_url не обязателен — по умолчанию https://api.onemix.me
bot = Bot(token="YOUR_BOT_TOKEN")
dp = Dispatcher()

@dp.message(CommandStart())
async def handle_start(message):
    await message.answer("Привет! Я бот ONEMIX")

@dp.message()
async def handle_message(message):
    await message.answer(f"Вы написали: {message.text}")

dp.run_polling(bot)

add_circleСоздание бота

1. Через BotFather

Команды @botfather:

  • /newbot — Создать нового бота
  • /mybots — Список ваших ботов
  • /setname — Изменить имя
  • /setdescription — Изменить описание
  • /setcommands — Настроить меню команд
  • /deletebot — Удалить бота
  • /token — Получить токен API

2. Через REST API

POST/botfather/create
data_objectrequest.json
{
  "name": "My Bot",
  "username": "my_cool_bot",
  "description": "Мой первый бот",
  "category": "utility"
}
data_objectresponse.json
{
  "id": "uuid",
  "username": "my_cool_bot",
  "api_token": "uuid:hex",
  "message": "Бот @my_cool_bot создан!"
}
warning
Username должен заканчиваться на bot или _bot. Минимальная длина — 5 символов.

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

Каждый запрос к Bot API должен содержать заголовок с токеном:

httpHTTP Header
Authorization: Bot YOUR_BOT_TOKEN

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

POST/bot-api/sendMessage
data_objectrequest.json
{
  "chat_id": "bot-chat-uuid",
  "text": "Привет от бота!"
}
data_objectresponse.json
{
  "ok": true,
  "message_id": "msg-uuid"
}

downloadПолучение обновлений

GET/bot-api/getUpdates?limit=100
data_objectresponse.json
{
  "ok": true,
  "result": [
    {
      "id": "msg-uuid",
      "bot_chat_id": "chat-uuid",
      "sender_type": "user",
      "content": "/start",
      "user_id": "user-uuid",
      "user_name": "Иван"
    }
  ]
}

webhookВебхуки

Вместо long-polling можно принимать обновления на ваш сервер через вебхуки — быстрее и эффективнее для продакшена.

POST/botfather/{bot_id}/webhook
data_objectrequest.json
{
  "url": "https://ваш-сервер.com/webhook",
  "secret": "optional_secret"
}

При новом сообщении сервер ONEMIX отправит POST-запрос:

data_objectincoming.json
{
  "update_type": "message",
  "message": {
    "id": "msg-uuid",
    "bot_chat_id": "chat-uuid",
    "content": "Текст",
    "user_id": "user-uuid",
    "user_name": "Иван"
  }
}
DELETE/botfather/{bot_id}/webhook

terminalКоманды бота

POST/botfather/{bot_id}/commands
data_objectrequest.json
{
  "commands": [
    {"command": "start", "description": "Запуск"},
    {"command": "help", "description": "Помощь"}
  ]
}

codePython-библиотека onemix-bot

Асинхронная библиотека в стиле aiogram 3.x: Bot + Dispatcher, хэндлеры с фильтрами, инлайн-кнопки и FSM. Адрес сервера по умолчанию — https://api.onemix.me, отдельно указывать не нужно. Установка: pip install onemix-bot (обновление — pip install -U onemix-bot).

Основные методы

descriptionmethods.py
from onemix_bot import Bot, Dispatcher

# api_url по умолчанию https://api.onemix.me
bot = Bot(token="TOKEN")
dp = Dispatcher()

me = await bot.get_me()                       # Информация о боте
await bot.send_message(chat_id, "текст")      # Отправка
await msg.answer("текст")                     # Ответ в тот же чат
await msg.reply("текст")                      # Ответ-реплай на сообщение
await bot.set_my_commands([...])              # Меню команд
dp.run_polling(bot)                           # Запуск (long-polling)

Декораторы

descriptiondecorators.py
from onemix_bot.filters import Command, CommandStart, F

@dp.message(CommandStart())
async def on_start(msg):
    await msg.answer("Добро пожаловать!")

@dp.message(Command("help"))
async def on_help(msg):
    await msg.answer("Список команд: /start, /help")

@dp.message(F.text.contains("привет"))
async def on_hello(msg):
    await msg.answer("Привет!")

@dp.message()           # ловит всё остальное
async def on_text(msg):
    await msg.answer(f"Эхо: {msg.text}")

Инлайн-кнопки

descriptionbuttons.py
from onemix_bot import InlineKeyboardBuilder
from onemix_bot.filters import CommandStart

@dp.message(CommandStart())
async def start(msg):
    kb = InlineKeyboardBuilder()
    kb.button(text="Открыть сайт", url="https://onemix.me")
    kb.button(text="Нажми меня", callback_data="hello")
    kb.adjust(1)   # по одной кнопке в ряд
    await msg.answer("Выбери действие:", reply_markup=kb.as_markup())

bookПримеры ботов

Эхо-бот

descriptionecho_bot.py
from onemix_bot import Bot, Dispatcher
from onemix_bot.filters import CommandStart

bot = Bot(token="TOKEN")
dp = Dispatcher()

@dp.message(CommandStart())
async def start(msg):
    await msg.answer("Отправь текст.")

@dp.message()
async def echo(msg):
    await msg.answer(msg.text)

dp.run_polling(bot)

Бот-напоминалка

descriptionreminder_bot.py
import asyncio
from onemix_bot import Bot, Dispatcher
from onemix_bot.filters import Command

bot = Bot(token="TOKEN")
dp = Dispatcher()

@dp.message(Command("remind"))
async def remind(msg):
    parts = msg.text.split(" ", 2)
    if len(parts) < 3:
        await msg.answer("Формат: /remind [мин] [текст]")
        return
    mins, text = int(parts[1]), parts[2]
    await msg.answer(f"Напомню через {mins} мин.")
    async def do():
        await asyncio.sleep(mins * 60)
        await msg.answer(f"Напоминание: {text}")
    asyncio.create_task(do())

dp.run_polling(bot)

Бот с OpenAI

descriptionai_bot.py
import openai
from onemix_bot import Bot, Dispatcher

bot = Bot(token="TOKEN")
dp = Dispatcher()
client = openai.AsyncOpenAI(api_key="sk-...")

@dp.message()
async def ai(msg):
    r = await client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": msg.text}],
        max_tokens=500)
    await msg.answer(r.choices[0].message.content)

dp.run_polling(bot)

Готовы создать своего бота?

Откройте ONEMIX, напишите @botfather и получите токен за 30 секунд.

downloadСкачать ONEMIX menu_bookЧитать SDK-доку