Бот для получения информации по заказам и организации.
Предоставляет информацию о контрагенте с контактной информацией менеджера и текущим балансом. Для каждого заказа можно получить даты изменения статусов.
Разрабатывалось для юридических лиц. Для физических лиц не тестировалось.
python # 3.11.1
aiogram # 3.0.0b7 бот
sqlalchemy + psycopg + alembic # БД(postgres) + драйвер + миграции
Jinja2 # шаблоны сообщений
APScheduler # обновление БД по расписанию
| Стартовая | Информация о клиенте |
|---|---|
![]() |
![]() |
| Информация о заказах | История перемещения |
![]() |
![]() |
- Клонируем репозиторий
git clone https://github.com/nightriddler/dellin_api_bot.git- В папке
dellin_api_botпереименовываем.env.exampleв.envи заполняем данными.
Вводим ключ, почту и пароль от сервиса Деловые Линии.
Зарегистрировать API-ключ Деловых Линий тут.
DELLIN_APPKEY=<ключ-от-сервиса>
DELLIN_LOGIN=<почта>
DELLIN_PASSWORD=<пароль>
BOT_TELEGRAM_TOKEN=<токен-бота>
DB_URL=postgresql+psycopg://postgres:postgres@db/postgres
TELEGRAM_CHAT_ID=000000000,111111111,222222222,333333333
В
TELEGRAM_CHAT_IDуказать без пробелов через запятуюCHAT IDпользователей которые могут пользоваться ботом.CHAT IDможно получить в боте@getmyid_bot.
- Запускаем docker-compose
docker-compose up -d- Запускаем миграции
docker-compose exec bot alembic upgrade head- При необходимости панель
pgAdminдоступна по адресу:
http://127.0.0.1:5050/
- Заходим в бот, отправляем
/start, проверяем что все работает
Бот доступен только пользователям указанным в .env.
Пустую БД бот наполнит заказами и информацией о клиенте при первоначальном нажатии на соответствующие кнопки в меню бота.
Далее, данные будут отдаваться уже из БД.
Бот парсит не все заказы, а только последние 25, что соответствует количеству заказов в журнале заказов для одной страницы.
Что касается статусов заказа, то для их отображения будут каждый раз отправляться запросы к АПИ, и тут может наблюдаться различная скорость получения ответа.
В
bot/contains.pyзначениеUPDATE_TIMEуказывает как часто (в секундах) бот в фоновом режиме будет опрашивать АПИ для обновления всех данных в БД. Частоту рекомендуется указать не более 10 минут (600 секунд). По-умолчанию, указано полчаса (1800 секунд).
Можно настроить отображение нескольких заказов при нажатии Информация о заказах. Для этого в bot/contains.py измените параметр COUNT_ORDER_IN_PAGE. По-умолчанию стоит 1.
Если делать количество выводимых заказов больше
1в сообщении, тогда нужно будет изменить текст сообщения"История перемещения"на более информативное, иначе не ясно будет для какого заказа какая кнопка. Сделать это нужно вbot/keyboards.pyв функцииget_orders_keyboard.
Документация к АПИ Деловые Линии



