x

Python (FastAPI) интеграция Telegram и Webim через Custom Channel

Перейти к заказу
1. Цель и общее описание Необходимо создать сервис, который будет:Принимать входящие сообщения от Telegram-бота (через Webhook).Перенаправлять эти сообщения в Webim посредством механизма Custom Channel.Принимать ответы от оператора в Webim (через callback) и пересылать их обратно пользователям в Telegram.Использовать базу данных PostgreSQL:Для хранения настроек (конфигураций, токенов, параметров интеграции).Для хранения связки между Telegram-пользователями и Webim-посетителями (visitor_id ↔ chat_id).При этом сами тексты сообщений (входящие и исходящие) не сохраняются в БД. Хранится только необходимая техническая информация: настройки интеграции и соответствие идентификаторов пользователей в обеих системах. 2. Требования к архитектуре и окружению Язык реализации: Python Web-фреймворк: FastAPI СУБД: PostgreSQLВзаимодействие с Telegram:Через Telegram Bot API и Webhook (setWebhook).Токен бота хранится в БД (таблица настроек) или в .env — на усмотрение исполнителя, но желательно хранить в БД, если это соответствует требованиям безопасности в инфраструктуре заказчика.Взаимодействие с Webim:Через REST API (Custom Channel). https://webim.ru/kb/dev/api/custom-channel.htmlCallback-URL для получения исходящих сообщений от оператора.access_token Webim также хранится в БД (в таблице настроек), либо в .env.Безопасность:Все внешние вызовы должны выполняться по HTTPS.Логирование:Использовать стандартный модуль logging (или аналог) для записи ключевых событий (получение сообщения, отправка, ошибки).Логи можно хранить локально или в любом внешнем сервисе (по согласованию). 3. Функциональные требования 3.1. Обработка входящих сообщений от Telegram Endpoint: POST /telegram-webhookПринимает JSON (update) от Telegram.Извлекает из него:Идентификатор пользователя (chat_id).Текст сообщения (при наличии).Определяет (через обращение к БД) наличие связки chat_id ↔ visitor_id:Если такой записи нет — создаёт новую:Генерирует/запрашивает новый visitor_id (может быть, например, str(chat_id) или использовать GUID).Сохраняет пару visitor_id, chat_id в таблице (см. пункт 4.2).Если запись уже существует, использует соответствующий visitor_id.Отправляет сообщение в Webim по Custom Channel:Передаёт visitor_id, текст сообщения и любую дополнительную метаинформацию (например, username).Сообщения в БД не сохраняются.Регистрация Webhook:Предоставить инструкцию по выполнению setWebhook для Telegram (пример CURL или Python-скрипт). 3.2. Обработка исходящих сообщений от Webim Endpoint: POST /webim-callbackWebim вызывает этот адрес при отправке ответа оператором. По visitor_id ищет в БД связку visitor_id ↔ chat_id.Если связка найдена, получает chat_id.Если нет — логирует ошибку (такое может произойти, если пользователь устарел, или в случае расхождения данных).Отправляет сообщение пользователю в Telegram (метод sendMessage).В БД текст сообщения не сохраняется. 3.3. Хранение настроек в PostgreSQL Хранить токены, URL-адреса и прочие конфигурационные данные в таблице settings. При запуске приложения (FastAPI) читать настройки и использовать в процессе интеграции. Время от времени их можно кэшировать в оперативной памяти, чтобы не грузить БД частыми запросами. 3.4. Хранение связки “visitor_id ↔ chat_id” в PostgreSQL Назначение: чтобы точно знать, какому Telegram-пользователю (chat_id) соответствует конкретный visitor_id из Webim.Предложенная таблица (например, chat_mapping): !Тут на усмотрение разработчика! При первом сообщении от нового Telegram-пользователя сервис создаёт запись (если её ещё нет).При callback из Webim с visitor_id сервис ищет запись в chat_mapping.Важно: если предполагается, что один и тот же Telegram-пользователь может иметь несколько различных сессий (и, соответственно, несколько visitor_id), нужно уточнить бизнес-логику. Наиболее распространённый случай: один chat_id ↔ один visitor_id. 4. Технические детали реализации 4.1. Структура проекта (пример на усмотрения разработчика) project/├── app/ │ ├── main.py # Точка входа FastAPI-приложения │ ├── config.py # Функции чтения настроек из БД или .env │ ├── db.py # Подключение к PostgreSQL (SQLAlchemy или psycopg2) │ ├── routers/ │ │ ├── telegram.py # Маршрут /telegram-webhook │ │ └── webim.py # Маршрут /webim-callback │ ├── schemas.py # Pydantic-схемы (валидация входящих данных) │ └── utils.py # Утилиты (отправка сообщений в Webim/Telegram) ├── requirements.txt # Зависимости (FastAPI, uvicorn, psycopg2 и т.д.) ├── README.md # Инструкция по развёртыванию и настройке ├── .env # Переменные окружения (не хранить в Git) └── ... 4.2. Взаимодействие с Webim Отправка входящих сообщений:Из telegram.py после получения chat_id и текста вызывается метод utils.send_to_webim(...).В аргументах передаются:visitor_id (из таблицы chat_mapping или вновь созданный).Текст сообщения.Авторизация по access_token Webim (из таблицы settings или переменной окружения).Приём сообщений (callback):В webim.py обрабатывается JSON с полями visitor_id, message, т. д.Находит в БД chat_id.Отправляет ответ в Telegram методами Bot API. 4.3. Взаимодействие с Telegram Отправка сообщений:Метод sendMessage Telegram Bot API.В качестве chat_id используется значение из chat_mapping.Токен бота читается из settings или переменной окружения.Приём сообщений (Webhook):Endpoint POST /telegram-webhook.Извлекает chat_id, текст и затем направляет сообщение в Webim. 4.4. Логирование Записывать в логи каждое входящее и исходящее сообщение (только факт получения/отправки, без сохранения полного текста в БД).При ошибках (например, Telegram вернул 4xx/5xx или Webim не ответил) логировать детальную информацию об ошибке. 5. Выходные материалы Исходный код в репозитории (Git) со структурой, описанной выше.Файлы миграции или SQL-скрипты:Для создания таблицы settings.Для создания таблицы chat_mapping.Инструкция в формате README.md (или аналог):Установка зависимостей (requirements.txt).Настройка переменных окружения (или заполнение таблицы settings).Запуск приложения (например, uvicorn app.main:app --host 0.0.0.0 --port 8000).Настройка Webhook в Telegram (setWebhook).Настройка Webim (callback URL).Пример полного цикла: пользователь → Telegram → Webim → оператор → Webim callback → Telegram.Тестовая сессия:Проверка, что при новом chat_id сервис корректно создаёт новую запись в chat_mapping.Проверка ответа оператора в Webim и доставки этого ответа в Telegram.Убедиться, что сообщения не сохраняются в БД. 6. Критерии приёмки Функциональность:Сообщения из Telegram доходят в Webim, ответы оператора — в Telegram.Связка visitor_id ↔ chat_id создаётся и поддерживается корректно в БД.Настройки (токены и пр.) считываются из PostgreSQL или .env, согласно требованиям.Стабильность:Приложение обрабатывает множественные запросы без критических сбоев.Логи содержат информацию об ошибках, при сетевых сбоях сервис не падает.Качество кода:Соблюдение PEP8 или аналогичных стандартов.Логичная структуризация (роуты, утилиты, модели/схемы).Документация:Наличие полного руководства по запуску/настройке 1-3 станицы.Примеры API-запросов и сценария тестирования.Сроки и соответствие ТЗ:Все перечисленные задачи выполнены.Предоставлен рабочий прототип, готовый к развёртыванию (при условии корректного наполнения таблицы settings и настройки Webim/Telegram).

Найдено 7024 результата

Разработка локации изменяя голос на базе готовых прог

Требуется разработка интерактивного приложения для локации "Марсинатор" с функциями изменения голоса, маской инопланетянина, и интуитивным интерфейсом в стиле управления инопланетным кораблем. Работа включает: Создание приложения с таблицей планет и функцией "Своя планета". Интеграция голосового модулятора и UI. Захват лица и анимация губ через веб-камеру. Настройка вывода звука (наушники/колонки). Предусмотрено стационарное место для наушников с базой для зарядки (опция). Требования: Опыт в создании UI/UX-дизайна и аудиоприложений. Знания Python, Unity или Unreal Engine, OpenCV. Возможно использование готовых приложений таких как (Animaze - лицо, Voxal - меняет голос) Срок: 4 недели.

Десктоп программирование
Опубликован:
05.12.24 10:06
Бюджет:
150000 руб.~$1872.43
Исправить ошибку Python\Django

Django - gunicorn - nginx При использовании requests.get('url') падает с ошибкой : https://pastebin.com/wYJFWnjD curl url - работает , python -c 'import request; requests.get("url)' - работает, тайм показывает что отрабатывает за 0.01 сек В Ide пайчарм все работает, после переноса гитом на сервер не заработало. Настройки веб сервера Нжинкс с таймаутами сделал. Куда копать, как чинить. Бонус на конфеты тому кто поможет починить.

Скрипты и боты
Опубликован:
05.12.24 09:23
Бюджет:
1000 руб.~$12.49
Сделать скрипт на python

Нужно сделать скрипт на python, которые делает то же самое что хонейпот.ис - проверка на скам. Визуальный интерфейс не нужен, только скрипт который делает проверку и возвращает результат. Это не парсинг сайта. Требование: качественный, читаемый, модульный, код, использовать классы, git, pylint ТЗ по запросу

Скрипты и боты
Опубликован:
05.12.24 07:23
Бюджет:
40000 руб.~$499.32
Доработка GPT бота в тг

Доработка и подключение рекурентных платежей для GPT бота Бот написан на: python aiogram + mysql ОН УЖЕ функционирует, касса подключена, все работает, требуется доработка. Подробное описание задачи в ТЗ, требуется довольно срочно, на все про все закладываем 4 дня. Заинтересованному кандидату направляем код, Также рассчитываем что вы сможете и дальше нам помогать с возникающими задачами со сдельной оплатой

Скрипты и боты
Опубликован:
05.12.24 07:03
Бюджет:
20000 руб.~$249.66
Ищу python junior разработчика

Мы разрабатываем веб-приложение, позволяющее пользователям создавать AI-агентов и подключать их к разным каналам. Основные задачи: - Участие в разработке функционала веб-приложения (написание интеграций, подключение платежной системы, функционала  конструктора) - Улучшение функционала работы ai агента (что используем, как работает покажем и расскажем) Требования:  - Базовые знания Python и желание развиваться в этой области. - Опыт работы с реляционными базами данных (MySQL, SQLite или PostgreSQL); мы используем PostgreSQL. - Знание фреймворков Flask или FastAPI - Готовность к обучению и освоению новых технологий

Скрипты и боты
Опубликован:
05.12.24 06:31
Бюджет:
70000 руб.~$873.8
Написать управление с джойстика (руль, педали) на Python через pygame

Нужно сделать управление джойстиком

Desktop
Опубликован:
04.12.24 20:59
Бюджет:
10000 руб.~$124.83
Доработать парсер (мегамаркет) на Python

Необходимо доработать парсер (мегамаркет) на Python. Мы берем определенную информацию по товарам, но сайт у мегамаркета сильно обновился и теперь наш парсер сломался. Надо его починить, чтобы вся информация вновь подтягивалась с ресурса.

Scripts
Опубликован:
04.12.24 17:44
Бюджет:
500 руб.~$6.25
Ошибка - не работает отправка файла в боте (python)

Всем привет, у нас есть проект на сервере - работает в докере. Там крутится чат бот, который прогоняет пользователя по вопросам и в самом конце генерирует файл и отправляет пользователю. Мы застряли - почему-то бот не отправляет файл - не понятно, что происходит. Кто поможет?

Скрипты и боты
Опубликован:
04.12.24 16:16
Бюджет:
1000 руб.~$12.49
Разработать небольшой сервис на Python с интеграциями

Необходим небольшой сервис-скрипт на Python, который смог бы принимать данные по вебхуку с нашего сайта (в формате json), сохранять данные и в преобразованном формате отправлять по API дальше в сервис фискализации. К сервису нужна небольшая админка буквально на 1 страницу: лог этих самых приемов с сайта и дальнейшая их отправка со статусом (успешно/неуспешно)

Скрипты и боты
Опубликован:
04.12.24 16:05
Бюджет:
10000 руб.~$124.83
Python доработки

Всем привет, нужен опытный программист который сможет доработать один проект на Python, проект в целом несложный. Важно чтобы у вас было РФ гражданство и возможность подписать Соглашение о неразглашении, после сможем предоставить задание для рассмотрение. В ответ напишите что готовы подписать Соглашение о неразглашении. Спасибо!

Доработка и настройка сайта
Опубликован:
04.12.24 14:52
Бюджет:
20000 руб.~$249.66
Производственная программа на Python (доделать)

Добрый день! Данная программа выполняет функцию склада и формирования списка продукции, который будет запускаться в изготовление. Первичное ТЗ прикреплено во вложении (Файл "ТЗ производственная программа". Также все исходные коды мы тоже предоставим. Необходимо внести финальные правки в производственную программу. Во вложении к данной задаче мы прикрепили первичное ТЗ, по которому писалась программа, а также первые правки (файл «Исправление производственной программы») Вся основная информация представлена в файле "ТЗ на программу".

Десктоп программирование
Опубликован:
04.12.24 13:44
Бюджет:
10000 руб.~$124.83
Динамическая страница Angular/React/JQuery + интеграция

есть скрипт на python с комплексным циклом, админ интерфейс на angular. необходимо создать динамическую страницу заглушку для клиента, где будет графически отображаться прогресс исполнения цикла, и связать ее со скриптом. страница уже существует в составе скрипта, представляет собой текст на белом фоне на html. она также служит для передачи данных между сервисом, с которым работает скрипт, и самим скриптом. возможна реализация с автопереадресацией на страницу с прогрессом после автоматического посещения страницы для передачи данных, если такой вариант необходим

Скрипты и боты
Опубликован:
04.12.24 13:22
Бюджет:
20000 руб.~$249.66
Закинуть чат-бот ТГ на сервер, Python 3.5

Есть готовый архив с чат ботом надо его закинуть на сервер и подключить API, + провести. Настроить реферальную систему. Тематика гороскопы, таро и натальная карта, срок 4 дня

Скрипты и боты
Опубликован:
04.12.24 13:19
Бюджет:
10000 руб.~$124.83
Скрипт на Python

Нужно написать скрипт на python, который реализует решение капчи-пазла от proton при взаимодействии с сервисом (это тот что предоставляет услуги почты, облачного хранилища и так далее). Посмотрите что это такое прежде чем откликаться. Это используется с целью Парсинга, НЕ используется для регистрации и не нарушает условия использования сервиса и законодательство. Скрипт будет использоваться исключительно в образовательных целях

Скрипты и боты
Опубликован:
04.12.24 12:04
Бюджет:
8000 руб.~$99.87
Подключить Python парсеры к PostgreSQL - TimescaleDB

Нужно:1. Грамотно спроектировать БД и зависимости в таблицах:Готовую структуру БД дам. Она была написана на MySQL, нужно перенести ее на TimescaleDB (улучшить, где это можно)2. Настроить Python парсеры на запись в БДВсего 6 парсеров. Они уже написаны, но требуются небольшие изменения (настроить запись в бд, убрать лишнюю информацию и т.п.)Парсеры простые - обычные веб скраперы на гет запросах.Часть парсеров платные с rapidapi.com (готовое API).Суть парсеров:Отправляем гет запрос, получаем данные, записываем в БДОт исполнителю жду:1. Умение проектировать высоконагруженные БД2. Опыт работы с TimescaleDB3. Хорошие знания PythonИсполнителю пришлю подробное ТЗ.

Bots
Опубликован:
04.12.24 10:58
Бюджет:
30000 руб.~$374.49
Подключить Python парсеры к PostgreSQL - TimescaleDB

Нужно: 1. Грамотно спроектировать БД и зависимости в таблицах: Готовую структуру БД дам. Она была написана на MySQL, нужно перенести ее на TimescaleDB (улучшить, где это можно) 2. Настроить Python парсеры на запись в БД Всего 6 парсеров. Они уже написаны, но требуются небольшие изменения (настроить запись в бд, убрать лишнюю информацию и т.п.) Парсеры простые - обычные веб скраперы на гет запросах. Часть парсеров платные с rapidapi.com (готовое API). Суть парсеров: Отправляем гет запрос, получаем данные, записываем в БД От исполнителю жду: 1. Умение проектировать высоконагруженные БД 2. Опыт работы с TimescaleDB 3. Хорошие знания Python Исполнителю пришлю подробное ТЗ.

Скрипты и боты
Опубликован:
04.12.24 10:52
Бюджет:
60000 руб.~$748.98
Интеграция в Бот платежных систем Paysync и Nicepay

Необходимо доработать бота c автооплатой , либо переписать его с 0 Написан на Python Добавление методов оплаты в Paysunc Добавление метода оплаты карта в nicepay Создание уведомлений в бот об успешной оплате paysync Просьба откликаться , только если есть опыт подключения этих платежных систем !

Скрипты и боты
Опубликован:
04.12.24 09:50
Бюджет:
28000 руб.~$349.52
Антидетект браузер + python

Автоматизация на связке антидетект браузер + python для сайта store.playstation.com. Жду запросов на ТЗ от людей с релевантным опытом.

Скрипты и боты
Опубликован:
04.12.24 05:58
Бюджет:
20000 руб.~$249.66
Помощь с написанием программ на Python

Требуется разработка небольших программ с использованием базовых алгоритмов и структур данных. Задачи включают: Подготовку тестов с использованием unittest, написание бенчмарков с помощью timeit. Большую часть работы, включая код, тесты бенчмарки можно быстро сгенерировать с помощью ChatGPT, но важно проверить, что все правильно работает. Пример задания: Реализовать структуру X на основе структуры Y, разработать методы для выполнения операций с ней, написать тесты и выполнить бенчмарки. Объем работы: четыре темы, в каждой по два задания. Оплата от 500 рублей за каждую тему. Техническое задание по каждой теме отправлю в личные сообщения.

Скрипты и боты
Опубликован:
04.12.24 05:24
Бюджет:
2000 руб.~$24.97
Разработка в симуляторе CARLA с Python API

Тема: "Разработка Системы Помощи Водителю В Сложных Условиях" Выполняется в симуляторе CARLA 0.9.14. Если есть другие предложения - можем обсудить. Реализовать функции: 1. Слепые зоны. 2. Адаптивный круиз контроль. 3. Автоматическая парковка. 4. Удержание в полосе. 5. Экстренное торможение. Насколько я понимаю, все функции реализуются через API – Необходимо писать код-скрипты, как в папке CARLA - PythonAPI/examples. Документация: [Introduction - CARLA Simulator](https://carla.readthedocs.io/en/latest/start_introduction/) В дальнейшем планируется разработка интерфейса для удобного управления всеми функциями. Подробнее в документе

Десктоп программирование
Опубликован:
03.12.24 22:22
Бюджет:
30000 руб.~$374.49

Текущая страница: 27

Всего страниц: 352