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).

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

Выгрузка/парсер в CSV

Нужен парсер на python для выгрузки таблицы в CSV формате для ссылки https://www.naturalstattrick.com/teamtable.php?fromseason=20242025&thruseason=20242025&stype=2&sit=enf&score=all&rate=n&team=all&loc=B&gpf=410&fd=&td= внизу таблицы есть кнопка CSV (all) можно ее нажимать через JS и сохранять в файл Код python должен представлять собой функцию в которую передаем ссылку и путь к файлу, куда сохранить

Скрипты и боты
Опубликован:
16.01.25 09:09
Бюджет:
4000 руб.~$49.94
Парсинг

несколько скриптов Python - парсить данные с двух сайтов, Данные сохранять в БД postgre ТЗ в приложенном файле

Скрипты и боты
Опубликован:
16.01.25 06:28
Бюджет:
10000 руб.~$124.83
Разработка Telegram Бота

Нужно будет разработать бота в Телеграмме, который сможет выполнять несколько ключевых функций. Во-первых, бот должен уметь обрабатывать команды пользователей, предоставляя им информацию по запрос Защита данных пользователей: бот не должен хранить личную информацию. Аутентификация: доступ к определенным функциям может быть ограничен по желанию администратора Бот будет разрабатываться на Python с использованием библиотеки python-telegram-bot. Бот будет размещен на облачном сервере (например, Heroku или AWS). Примеры: t.me/nashvless Этап разработки: 4 недели. Этап тестирования: 1 неделя. Запуск бота: через 5 недель после начала разработки.

Скрипты и боты
Опубликован:
16.01.25 05:49
Бюджет:
46000 руб.~$574.22
Fullstack(Python/JS) разработчик расширений браузера

Требуется на постоянной основе разработчик. Есть 2 действующих расширения (17к юзеров, и 3к), нужно помимо их поддержки разрабатывать новые расширения, возможно ещё разработка сайта(авторизация/аутентификация, управление подписками, отправка писем и тд) Текущий стэк Backend: - fastapi, asyncio, sqlalchemy, pydantic, celery - docker, nginx, postgresql, redis Frontend: - WXT, React, MUI Из первых задач бэка: - Добавить графану, прометей для сбора логов, просмотра RPS, % ошибок и тд - Сделать аналитику сколько сейчас юзеров пользуется сервисом - Сделать админку со статистикой сервиса (включая фронт) + управление - Заменить из open source сервиса на JS сохранение в БД на кэширование в Redis (сделав форк) и добавить этот сервис как отдельного провайдера данных По фронту: - На основе json данных нужно отрисовать UI компонент, таблицу с сортировкой по столбцам этой таблицы, в нужном месте расположить данные, какие-то иконки и тд - Сделать чтобы на основе переданного в url get параметра (ключа) шел запрос на бэк на проверку наличия подписки и на основе этого давать доступ к определенным API или нет(включая показа нужных кнопок которые ведут на эти API) - Создать новое расширение на wxt с react Задачи могут быть лёгкие, так и сложные, профессиональный рост будет обеспечен.

Создание сайта
Опубликован:
15.01.25 22:31
Бюджет:
50000 руб.~$624.15
написать приложение

Необходимо написать или переписать приложение на C++ для перевода аудио и видео звонков. Есть исходники приложения на python,... руб

IT-технологии и Разработка
Опубликован:
15.01.25 22:05
Бюджет:
50000 руб.~$624.15
Парсер python + selenium + tg бот

Добрый день! Цель: Разработать скрипт, который: 1.Открывает браузер Google Chrome. 2.Листает ленту «Рекомендации». 3.Проверяет условия: •Количество просмотров > 5000. •ER ≥ 10%. (Формулу объясню) •Видео опубликовано менее 9 часов назад 4.Отправляет уведомление в Telegram-бот (однократно для каждого подходящего поста). Функциональные требования: 1.Парсинг ленты: •Использовать Selenium или Puppeteer для автоматизации браузера. •Реализовать листание ленты с интервалами (для имитации реальных действий). 2.Проверка условий: •Извлекать количество просмотров и значения ER из попавшегося в FYP видео •Если видео соответствует условиям (>5000 просмотров и ER ≥ 10%) 3.Уведомление в Telegram: •Настроить взаимодействие с Telegram API. •Отправлять сообщение с деталями видео (ссылка, количество просмотров, ER, сколько часов назад опубликовано). Нефункциональные требования: •Скрипт должен быть написан на Python. •Установить ограничение на количество запросов для избежания блокировки аккаунта. •Логировать результаты выполнения (обработанные посты, отправленные уведомления, ошибки). Дополнительно: 1.Использовать .env файл для хранения конфиденциальных данных (токен Telegram, URL и т.д.). 2.При необходимости предусмотреть возможность настройки параметров (например, минимального количества просмотров и ER). Результат: Рабочий Python-скрипт, отправляющий уведомления о постах, соответствующих заданным условиям. Более детально, подробно опишу в лс

Скрипты и боты
Опубликован:
15.01.25 17:43
Бюджет:
4000 руб.~$49.94
Ингегрировать готовый интерфейс на React в Python скрип

Тема: проект "Ингегрировать готовый интерфейс на React в Python скрип"добрый деньу меня пока что есть недоработанный интерфейс https://v0.dev/chat/fork-of-steam-bot-interface-09...и готовый скрипт на питоне https://github.com/SmallTailTeam/BotLooterМне нужно весь функционал python скрипта интегрировать в интерфейс,под тестированием я подразумеваю проверка всех функций скрипта.Прямой отклик в TG: @kukuruzin20

Other
Опубликован:
15.01.25 17:12
Бюджет:
2000 руб.~$24.97
Исправить и запустить сервис API+BackEnd на amvera.ru

Необходимо исправить код сервиса с использованием нескольких API (Rest). Загрузка данных (PUT). Выгрузка данных по запросу (Get), вызов обработчика. Подготовка базы к развертыванию (Postgre SQL), backend - Python. Проект должен быть развернут на amvera.ru и выполнять загрузку/выгрузку данных по API на тарифном плане "начальный"

Скрипты и боты
Опубликован:
15.01.25 12:42
Бюджет:
60000 руб.~$748.98
Специалист по извлечению данных и вэб-скрапингу Python

Создать Telegram-бота, способного парсить контакты, связанные со сферой недвижимости, из Telegram-групп, чатов и тематических сообществ.

Скрипты и боты
Опубликован:
15.01.25 12:13
Бюджет:
10000 руб.~$124.83
Доработать python скрипт для работы с протоколом Ccnet

Всем привет! Ищу сильного питониста, который доработает мой небольшой скрипт (в приложении) для работы с купюроприемником Cashcode на протоколе ccnet. Текущий скрипт просто принимает купюру и отображает ее номинал. Необходимо программу довести до ума согласно инструкции работы с протоколом ccnet (в приложении). Надо чтобы программа по нажатию на кнопку "Начать" принимала купюры без остановки и отображала их сумму на экране. Когда нажата кнопка "Стоп", процесс останавливается и прекращается прием купюр. Если нажать "Начать" процесс сбрасывается и начинается сначала.

Скрипты и боты
Опубликован:
15.01.25 11:57
Бюджет:
4000 руб.~$49.94
Программа на ПК

Добрый день! Цель: Разработать скрипт, который: 1.Открывает браузер Google Chrome. 2.Листает ленту «Рекомендации». 3.Проверяет условия: •Количество просмотров > 5000. •ER ≥ 10%. (Формулу объясню) 4.Отправляет уведомление в Telegram-бот (однократно для каждого подходящего поста). Функциональные требования: 1.Парсинг ленты: •Использовать Selenium или Puppeteer для автоматизации браузера. •Реализовать листание ленты с интервалами (для имитации реальных действий). 2.Проверка условий: •Извлекать количество просмотров и значения ER из попавшегося в FYP видео •Если видео соответствует условиям (>5000 просмотров и ER ≥ 10%) 3.Уведомление в Telegram: •Настроить взаимодействие с Telegram API. •Отправлять сообщение с деталями видео (ссылка, количество просмотров, ER, сколько часов назад опубликовано). Нефункциональные требования: •Скрипт должен быть написан на Python. •Установить ограничение на количество запросов для избежания блокировки аккаунта. •Логировать результаты выполнения (обработанные посты, отправленные уведомления, ошибки). Дополнительно: 1.Использовать .env файл для хранения конфиденциальных данных (токен Telegram, URL и т.д.). 2.При необходимости предусмотреть возможность настройки параметров (например, минимального количества просмотров и ER). Результат: Рабочий Python-скрипт, отправляющий уведомления о постах, соответствующих заданным условиям. Более детально, подробно опишу в лс, цена условная Оставляйте отклики, оформление + отзыв в обязательном порядке

Десктоп программирование
Опубликован:
15.01.25 11:38
Бюджет:
3000 руб.~$37.45
Требуется реализовать метод (функцию), который проверяет регистрацию email на сторонней площадке.

Язык программирования: Python Навыки: Selenium, Playwright, Python Пример кейса - хотим проверить наличие регистрации... руб

IT-технологии и Разработка
Опубликован:
15.01.25 10:28
Бюджет:
4000 руб.~$49.94
Разработка python телеграм бота

Нужно сделать несколько мега простых моментов в ботах на python. 1. Убрать в первом боте функционал(именно закоментировать, чтобы можно было вернуть) и затем сделать прием голосового сообщения, просто записыаем гс, а бот распознает текст и отправляет его дальше. 2. Добавить простенькую функцию в бота, там три кнопки, которые посылают простые rest api запросы.

Скрипты и боты
Опубликован:
15.01.25 09:48
Бюджет:
500 руб.~$6.25
Написание парсер проверки регистрации на Selenium (или аналоги)

Требуется реализовать метод (функцию), который проверяет регистрацию email на сторонней площадке. Язык PythonПример кейса - хотим проверить наличие регистрации какого-то имейла на сайте twitter.com. Метод принимает параметры:email - который требуется проверитьproxy - прокси, через который требуется осуществить проверку. ip:port with user/passwordМетод должен возвращать Optional[bool]:true - если email зарегистрированfalse - если email НЕ зарегистрирован None - в случае ошибки или любой другой ситуации вследствие которой проверка не удаласьИнтерфейс метода:def checker(email: str, proxy: str) -> Optional[bool]Важно:- Запрашивайте площадку, для которой нужно написать парсер у заказчика.- Используйте библиотеку Selenium или аналогиДополнительно:- Будет плюсом если сможете обработать различные corner-кейсы данного решения.Под - Будет плюсом если опишите corner-кейсы параллельного запуска большого кол-ва функций проверки регистраций.Такие решения будут оплачиваться дополнительно и обсуждаться.Площадок много!)

Bots
Опубликован:
15.01.25 09:24
Бюджет:
4000 руб.~$49.94
Помочь установить и настроить приложение на python

Есть приложение https://github.com/DrewThomasson/ebook2audiobook Надо помочь установить и настроить работу

Юзабилити, тесты и помощь
Опубликован:
15.01.25 09:00
Бюджет:
2000 руб.~$24.97
Разработайте скрипт (Python, PHP или Node.js)

Разработайте скрипт (Python, PHP или Node.js) для преобразования CSV-файлов в XML на основе нашего руководства, которое будет предоставлено. Инструмент должен:1) Сопоставлять поля CSV со структурой XML.2) Проверять вывод на соответствие предоставленным требованиям.3) Обрабатывать обязательные/необязательные поля и ошибки.Поставляемые материалы включают скрипт, документацию по использованию и примеры.https://drive.google.com/file/d/1M9j9amshm9sAB4nk8...Отклик можно в tg: @kukuruzin20

Other
Опубликован:
15.01.25 07:46
Бюджет:
5000 руб.~$62.42
Итоговое задание в Python

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

Десктоп программирование
Опубликован:
15.01.25 07:19
Бюджет:
1000 руб.~$12.49
Проверить python скрипт на работоспособность

Добрый день, коллеги, Необходимо сгенерировать около 50 документов, посвященных самым известным дизайнерам моды. Для этого предполагается использовать скрипт из данного репозитория: https://github.com/arham-kk/gemini-2-bookgen На данном этапе стоит задача проверить, способен ли скрипт генерировать подробные документы с биографиями известных людей объёмом в несколько сотен страниц. **Что требуется в рамках данного задания:** 1. Скачать и установить скрипт. 2. Проверить его работоспособность. 3. Оценить качество генерации документов на актуальных моделях Gemini. Обращаю внимание, что задача носит исследовательский характер. Ключи для API будут предоставлены.

Юзабилити, тесты и помощь
Опубликован:
14.01.25 23:06
Бюджет:
2000 руб.~$24.97
Нужно создать алгоритм-лесенку на бирже bingX

Нужно создать алгоритм-лесенку на бирже bingX, желательно на python. Подробности алгоритма скину в ЛС.

Скрипты и боты
Опубликован:
14.01.25 21:41
Бюджет:
12000 руб.~$149.8
Спарсить данные в базу PostgreSQL + S3

У нас есть: 1. Структурированная таблица данных на 800 строк по 10 небольших текстовых элементов в каждой. Каждая строка это по сути бот 2. 2 папки с фото в формате {id_бота}_{номер фото}.png около 20 штук Нужно загрузить фото в S3, в базу загрузить все данные и привязать к ним ссылку на фото из S3. Интеграция с S3 есть в текущем коде, база есть на 30 элементов сейчас. Код python.

Скрипты и боты
Опубликован:
14.01.25 20:14
Бюджет:
5000 руб.~$62.42

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

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