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.0b1.tar.gz (19.8 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.0b1-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: messenger001_aiogram-0.1.0b1.tar.gz
  • Upload date:
  • Size: 19.8 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.0b1.tar.gz
Algorithm Hash digest
SHA256 f9ee980b778593a3e3d63e3d0408aee1877365d390ac6f35b0d03ab13744c754
MD5 bdc9a6f56d65b5de431dfe5e361e741d
BLAKE2b-256 e5c6d26f5f5b3d6d7b920d4ae1bfc0cfdb462a384cb86710191157df3d2347d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for messenger001_aiogram-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5494da6918894fddfbea14c3d689fa4e2d93be2ead29f2dd0e2ae627c250eea
MD5 f3bc3758c96c40356e8c43bdbad28a99
BLAKE2b-256 bd89288752ff2ce36afae017c069cc77e7e5d2922f48b46a3a77fbf7f0efaf2f

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