aiogram-бот в Переклике: меняем одну строку
Если у вас есть бот для Telegram, он почти наверняка заработает в Переклике без переписывания: Bot API у нас совместим по методам, типам и формату ответов. Меняется адрес сервера и токен. Ниже — что именно, и где совместимость заканчивается.
Зачем это разработчику
Бот в Telegram живёт в чужом доме: правила меняются, аудитория общая с миллионом других ботов, а если сервис в стране заблокируют или замедлят, бот умирает вместе с ним. Переклик — сервис для сообществ, и бот в нём обслуживает конкретный клуб, школу или компанию. Тот же код, та же библиотека, свой токен.
Шаг 1. Токен
- Откройте Переклик (веб-версия или приложение) и войдите.
- Найдите
@botfatherили откройте pereklik.ru/botfather. /newbot, имя, username (5–32 символа, латиница, цифры и_, заканчивается наbot).- Скопируйте токен.
/revokeвыдаёт новый, если старый утёк.
Адреса:
API: https://api.pereklik.ru/bot<TOKEN>/<method>
Файлы: https://api.pereklik.ru/file/bot<TOKEN>/<file_path>
Шаг 2. Одна строка
aiogram 3
from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer
session = AiohttpSession(api=TelegramAPIServer.from_base("https://api.pereklik.ru"))
bot = Bot(token=TOKEN, session=session)
grammY
const bot = new Bot(TOKEN, { client: { apiRoot: "https://api.pereklik.ru" } });
python-telegram-bot
app = (Application.builder().token(TOKEN)
.base_url("https://api.pereklik.ru/bot")
.base_file_url("https://api.pereklik.ru/file/bot")
.build())
Telegraf
const bot = new Telegraf(TOKEN, { telegram: { apiRoot: "https://api.pereklik.ru" } });
Дальше — getUpdates или webhook, как привыкли.
Шаг 3. Webhook
Только HTTPS, порты 443, 80, 88 или 8443, сертификат от публичного центра (самоподписанные
не принимаются). Фильтр по IP-сетям Telegram, если он у вас включён, надо выключить — в
aiogram это IPFilter.default(). Подлинность запросов проверяйте через secret_token,
он поддерживается.
Где совместимость заканчивается
Это честный список, чтобы не искать по логам:
- ID другие. Формат тот же (группы отрицательные, каналы
-100…), значения свои. Старыеchat_idиfile_idиз Telegram здесь не работают — не зашивайте их в код. - Бот не пишет первым. В личку он отвечает только тем, кто ему написал. Это правило сервиса, не ограничение API.
- Диплинки —
https://pereklik.ru/<бот>?start=<payload>вместоt.me/.... - Апдейты:
message,edited_message,channel_post,edited_channel_post,callback_query,my_chat_member. - Нет: inline mode, платежей, стикеров, игр, Web Apps, business-режима, форумов,
опросов через бота, геопозиции, контактов, реакций,
restrictChatMemberиpromoteChatMember. Такие вызовы отвечают400 method is not supported by Pereklik Bot API— ловите и деградируйте, библиотека не упадёт.
Полный перечень методов и лимиты — на странице «Перенеси бота».
Что получилось у нас
Первый живой бот в Переклике — семейный: заказ воды и суши кнопками, оплата коммуналки по
квитанции. Написан на grammY, и вся «специфика Переклика» в его коде — это apiRoot и токен;
остальное — обычный бот, каким его знает любой, кто писал для Telegram.
Если что-то не заработало — напишите на support@pereklik.ru с названием библиотеки и текстом ошибки, разберём.