Skip to content

Бот API сервиса Деловые Линии для получения информации по заказам и организации

License

Notifications You must be signed in to change notification settings

nightriddler/dellin_api_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Телеграм-бот для сервиса Деловые Линии

Code style: black license MIT

Описание

Бот для получения информации по заказам и организации.

Предоставляет информацию о контрагенте с контактной информацией менеджера и текущим балансом. Для каждого заказа можно получить даты изменения статусов.

Разрабатывалось для юридических лиц. Для физических лиц не тестировалось.

Зависимости

python # 3.11.1
aiogram # 3.0.0b7 бот
sqlalchemy + psycopg + alembic # БД(postgres) + драйвер + миграции
Jinja2 # шаблоны сообщений
APScheduler # обновление БД по расписанию

Навигация

Стартовая Информация о клиенте
start counteragents
Информация о заказах История перемещения
order history

Развертка в docker-compose

  1. Клонируем репозиторий
git clone https://github.com/nightriddler/dellin_api_bot.git
  1. В папке 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.

  1. Запускаем docker-compose
docker-compose up -d
  1. Запускаем миграции
docker-compose exec bot alembic upgrade head
  1. При необходимости панель pgAdmin доступна по адресу:
http://127.0.0.1:5050/
  1. Заходим в бот, отправляем /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.

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

Документация к АПИ Деловые Линии

Связаться с автором

Telegram

About

Бот API сервиса Деловые Линии для получения информации по заказам и организации

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published