Skip to main content

aiogram-compatible SDK for Messenger001 Bot API — migrate your Telegram bot in one import change, or run dual-transport (TG + M001 in one codebase)

Project description

messenger001-aiogram

aiogram-совместимый SDK для Messenger001 Bot API. Перенеси свой Telegram-бот на aiogram в Messenger001 заменой одного импорта — или запусти один codebase в двух мессенджерах одновременно.

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

Установка

# Только M001:
pip install messenger001-aiogram

# Dual-transport (TG + M001 в одной кодовой базе):
pip install messenger001-aiogram[telegram]

Сценарий 1 — миграция TG-бота в Messenger001

- from aiogram import Bot, Dispatcher, F
- from aiogram.filters import Command, CommandStart
- from aiogram.types import Message, CallbackQuery
- from aiogram.utils.keyboard import InlineKeyboardBuilder
+ from messenger001_aiogram import Bot, Dispatcher, F, InlineKeyboardBuilder
+ from messenger001_aiogram.filters import Command, CommandStart
+ from messenger001_aiogram.types import Message, CallbackQuery

Handlers, фильтры, клавиатуры (inline + reply), FSM — без изменений.

Сценарий 2 — один codebase для TG и M001

# Импортируй из dual-submodule везде:
from messenger001_aiogram.dual import Bot, Dispatcher, F, Router
from messenger001_aiogram.dual.filters import Command, CommandStart
from messenger001_aiogram.dual.types import Message, CallbackQuery
from messenger001_aiogram.dual.keyboards import InlineKeyboardBuilder, ReplyKeyboardMarkup
from messenger001_aiogram.dual.fsm import State, StatesGroup, FSMContext, MemoryStorage

# Handlers пишутся ОДИН раз — работают в обоих транспортах:
@dp.message(Command("start"))
async def start(msg: Message):
    await msg.answer("Привет!")

Транспорт выбирается переменной окружения TRANSPORT:

TRANSPORT Что используется под капотом Token env
telegram (default) aiogram (long-polling или webhook) TELEGRAM_TOKEN
m001 messenger001-aiogram (webhook) M001_TOKEN

Один docker-image, два деплоя: запусти две инстанции с разными TRANSPORT и токенами — handler-код общий.

Пример

import asyncio, os
from messenger001_aiogram import Bot, Dispatcher, F, InlineKeyboardBuilder, Message, start_webhook
from messenger001_aiogram.filters import CommandStart

dp = Dispatcher()

@dp.message(CommandStart())
async def start(msg: Message):
    kb = InlineKeyboardBuilder()
    kb.button(text="Ping", callback_data="ping")
    await msg.answer("Привет!", reply_markup=kb.as_markup())

async def main():
    async with Bot(token=os.environ["M001_TOKEN"]) as bot:
        await start_webhook(dp, bot, port=8080)

asyncio.run(main())

См. examples/echo_bot.py для полного примера.

Меню команд

Зарегистрируй команды бота — в чате с ботом появится кнопка меню слева от поля ввода, /команды в тексте станут кликабельными, а ввод / покажет автокомплит.

from messenger001_aiogram import BotCommand

async with Bot(token=TOKEN) as bot:
    await bot.set_my_commands([
        BotCommand(command="start", description="Начать работу"),
        BotCommand(command="help",  description="Помощь"),
    ])

Что поддерживается (v0.1)

aiogram messenger001-aiogram
Bot(token)
bot.send_message / send_photo / send_document / send_video / send_audio
bot.edit_message_text / edit_message_reply_markup
bot.answer_callback_query / send_chat_action / get_me
bot.set_my_commands / get_my_commands / delete_my_commands
Dispatcher, Router, include_router
@dp.message(...), @dp.callback_query(...)
Command, CommandStart(deep_link=True)
F.data == "...", F.text.startswith(...) ✅ (подмножество)
InlineKeyboardBuilder, InlineKeyboardMarkup
State, StatesGroup, FSMContext, MemoryStorage
Webhook receiver (aiohttp) + HMAC-verify
Reply-клавиатура (ReplyKeyboardMarkup) ✅ Telegram-style панель над input bar
parse_mode="HTML" (<b>, <i>, <a href>, <code>, и т.д.) ✅ парсится на backend в MessageEntity[] (как Telegram MTProto)
bot.start_polling(...) ❌ (M001 — webhook-only)
Forwarding, polls, stickers ❌ (нет на платформе)

Подключение

  1. Создай бота. Открой в Messenger001 чат с @botfather/newbot → получи токен. Сохрани его в env-переменную M001_TOKEN.

  2. Напиши код бота. Используй пример выше или скопируй examples/echo_bot.py.

  3. Запусти бота на сервере с публичным HTTPS (VPS, Railway, Render, Fly.io). Скрипт должен слушать POST /webhook на публично доступном URL. Для production используй systemd / supervisor / docker, чтобы процесс автоматически рестартился.

    python your_bot.py
    
  4. Зарегистрируй webhook у @botfather. В том же чате: /mybots → выбери бота → «Webhook URL» → укажи https://your-host/webhook.

  5. Готово. Пиши боту в Messenger001 — он отвечает.

Документация

См. также:

Лицензия

MIT © Marat Khusainov

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

messenger001_aiogram-0.1.0b3.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

messenger001_aiogram-0.1.0b3-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file messenger001_aiogram-0.1.0b3.tar.gz.

File metadata

  • Download URL: messenger001_aiogram-0.1.0b3.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for messenger001_aiogram-0.1.0b3.tar.gz
Algorithm Hash digest
SHA256 0d1f0f15e3dd0e1ca84028f3f1a9e2466fd8ba76358aa14a9353d79ba086d6bc
MD5 d0fcd84df2d22fcadae580943df6419a
BLAKE2b-256 70b6b0811aae9324908d7981f0be749687499f56e84985f529975f6ce29c8805

See more details on using hashes here.

File details

Details for the file messenger001_aiogram-0.1.0b3-py3-none-any.whl.

File metadata

File hashes

Hashes for messenger001_aiogram-0.1.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 ab2ffd7501dfcfa681101459ce346033f3cc7c359b2c8440c5a81febef0c50d5
MD5 772ccaab1fd7724b7afdc73a9097ee6b
BLAKE2b-256 e53667ff93a38baab7a6345a824bbe3fcd9765e5316730306a14aea0d93d5760

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page