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
bot.start_polling(...) ❌ (M001 — webhook-only)
Reply-клавиатура ❌ (нет на платформе)
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.0b2.tar.gz (20.0 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.0b2-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: messenger001_aiogram-0.1.0b2.tar.gz
  • Upload date:
  • Size: 20.0 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.0b2.tar.gz
Algorithm Hash digest
SHA256 c333338f643d17963150c49393ba8b72f496aceed3e0cdef9408775110fa6672
MD5 feaf7f88e34ae42f66d163b1b9e6d9bd
BLAKE2b-256 7b15475af4d94f4947033d42573657a64b7017d42214e5089e4e309ef0e3d210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for messenger001_aiogram-0.1.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 2c3853eeda8dd8a1f6a2837ac99af46eebc072b5c4c01bece3f734511e8f3a8e
MD5 b340322d7202332d696d62353f35b28d
BLAKE2b-256 c813d7b9872c5204d7bf5b25184d089f496277445a21a28681d5526879f7d088

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