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 для полного примера.

Меню команд бота

Telegram-боты обычно имеют список команд (/start, /help и т.д.) — он показывается клиенту в виде popup'а при вводе / в чате и в виде кнопки слева от поля ввода. Чтобы такой же popup появился в Messenger001, сообщи серверу список своих команд один раз (при старте бота или при изменении набора). Делается одним вызовом — точно так же, как bot.set_my_commands(...) в aiogram:

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="Помощь"),
    ])

После этого в Messenger001:

  • При вводе / в чате с ботом всплывёт popup со списком команд → tap отправляет команду.
  • Слева от текстового поля появится кнопка → tap открывает тот же popup.

Что поддерживается (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 — он отвечает.

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

См. также (ссылки на GitHub — рендерятся и кликабельны и на PyPI, и на странице репозитория):

Лицензия

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.0b4.tar.gz (20.5 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.0b4-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: messenger001_aiogram-0.1.0b4.tar.gz
  • Upload date:
  • Size: 20.5 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.0b4.tar.gz
Algorithm Hash digest
SHA256 0eaef571fc06ba1b60e8aad7fd552e528a87b57733929b77e0a7fdfc80c9e95d
MD5 d2899222c088f4d154e6109d217ffc22
BLAKE2b-256 a87afec193e0dd1ba8b85cd3af0b8ecf878855bc575c7ac25f70803cd3ade7ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for messenger001_aiogram-0.1.0b4-py3-none-any.whl
Algorithm Hash digest
SHA256 09b0db3493e942484c49185c9a3e9d4882c9741dfdba3bd5f5f4d3a140fcfbe3
MD5 2371ed74c36c3d09d2bea76f61e1eb3f
BLAKE2b-256 4131126a67dc88e39fa0f53b13a792e5b8a7ba8776b8c372d1038219cff502aa

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