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 результата

Требуется создать парсер данных из you tube на Python

Требуется создать парсер данных из you tube на Python. Задача парсера: Собирать данные о количестве выпущенных на you tube видео за каждый день в динамике. Поиск видео производится по ключевому слову в названии ролика. Пример: интересуют ролики со словом «Тимати» с начала года. Парсер собирает данные и создает таблицу с количеством роликов за каждый день содержащих в названии слово «Тимати» и гистограммой. Важно сделать парсер под ключ так, что бы я мог самостоятельно задавать запросы путем ввода искомого слова и периода времени, а парсер бы формировал таблицу.

Скрипты и боты
Опубликован:
07.12.24 03:46
Бюджет:
50000 руб.~$624.15
Парсер историй Инстаграм

Написать Python скрипт, который в ответ на Имя Пользователя Инстаграм скачивает и присылает его истории.

Скрипты и боты
Опубликован:
07.12.24 02:35
Бюджет:
1000 руб.~$12.49
Телеграм бот

Python aiogram 2 pymysql marzban нужно добавить некоторые функции. Не знаю сколько стоит работа поэтому написал такую цену

Скрипты и боты
Опубликован:
06.12.24 19:19
Бюджет:
20000 руб.~$249.66
Решение алгоритмической задачи с регрессией Python, С++

Нужно полностью решить задачу (дана ниже в файлах) и оптимизировать код. Можно использовать python, c++. Бюджет 500 рублей, срок 3 дня. Можете предлагать свою цену или задавать вопросы, все рассмотрю!

Скрипты и боты
Опубликован:
06.12.24 17:12
Бюджет:
1000 руб.~$12.49
Python разработка

Наша компания находится в поиске python разработчика! Нужно будет заниматься разработкой телеграм ботов, веб-приложений на Django и многим другим. Рассматриваем только долгосрочное сотрудничество. У нас очень много различных проектов, которые можем реализовать вместе с Вами! Если интересует данное предложение, расскажите о Вашем стеке, опыте работы. Также расскажите о том, где учились, работали. Какие у Вас зарплатные ожидания (за 12 ставки и за полную ставку) сейчас, через полгода и через год

Скрипты и боты
Опубликован:
06.12.24 15:57
Бюджет:
10000 руб.~$124.83
Макрос на Arduino Micro + управление Python или AHK

Необходимо написать макрос, который выполняет простые действия с помощью Ардуино. У Arduino Micro на чипе ATmega32u4, есть драйвер, который с помощью библиотек ардуино и команд Python или AutoHotKey может эмулировать клавиатуру и мышь, необходимо написать простой макрос на 3 действия (нажатия кнопок мыши и клавиатуры) С возможностью редактирования. В паблике есть разные способы, скетчи готовые, задача написать код и протестировать, чтобы всё работало. Тороплюсь, все вопросы в ЛС, нужен конкретный исполнитель. Можете предложить свои варианты реализации макроса с 'физическими' нажатиями, многие варианты уже тестировались и не работают.

Скрипты и боты
Опубликован:
06.12.24 15:28
Бюджет:
1500 руб.~$18.73
Доработка сайта производителя дверей на Python Django

Требуется выполнить комплексную доработку существующего сайта компании, специализирующейся на производстве дверей и интерьерных решений.Основные задачи:- Оптимизация структуры каталога продукции- Корректировка порядка отображения категорий- Доработка функционала корзины- Обновление медиа-контента (замена изображений, оптимизация видео)- Настройка автоматической смены интерьеров- Добавление описаний к продукции- Реализация подкатегорий в разделах- Интеграция дополнительных элементов UI (иконки, индикаторы)- Обновление копирайта и системных текстов- Оптимизация навигации по каталогуПодробное техническое задание и все детали обсудим в личных сообщениях. Стек: Python Django основа, для данных PostgreSQLВажно: опыт работы с аналогичными проектами, понимание специфики интернет-магазинов и каталогов продукции.

All inclusive
Опубликован:
06.12.24 14:29
Бюджет:
40000 руб.~$499.32
Доработка и поддержка python проекта

Необходим разработчик python Доработка и поддержка существующего парсера с веб интерфейсом на flask Пишите свои предложения и стоимость часа

Скрипты и боты
Опубликован:
06.12.24 14:06
Бюджет:
2000 руб.~$24.97
Birdeye.so boosting views

Нужен софт (просто скрипт) по накрутке просмотров страницы токена на сайте birdeye.so (например вот ссылка на рандомный токен https://www.birdeye.so/token/EBGaJP7srpUUN8eRdta1M...). Софт должен уметь крутить два параметра, а именно просмотры страницы (24h Views) и наблюдатели токена (Watchers) в неограниченном количестве (см скрины).Алгоритм такой: закидываем в скрипт адрес токена, выбираем режим - views/watchers - скрипт начинает работу.Прокси предоставлю. Язык программирования python. Работать должно на обычных запросах (типа requests/tls_client и тд) без Selenium или прочей браузерной автоматизации.

Bots
Опубликован:
06.12.24 12:40
Бюджет:
40000 руб.~$499.32
Нужен разработчик программ для шифрования файлов

Необходимо разработать подситему криптографической защиты внутренних данных ( для шифрования каталога и его содержимого) с использованием щифра ГОСТ Кузнечик. С пояснением кода. Языки программирования: C++, python. Более подробная информация находится в прикрепленном файле. Срок: 2 недели.

Десктоп программирование
Опубликован:
06.12.24 10:14
Бюджет:
20000 руб.~$249.66
Разработка Flutter

Добрый день. Ищем в команду Flutter разработчика. Мы молодая студия разработки мобильных приложений и ботов. Наш основной стек – Flutter и Python для бекенд разработки. Работа проектная. Оплата зависит от проекта. Подробно, все условия лично. От вас реальные знания и умения. Обязанности: -Разработка и поддержка мобильных приложений на платформе Flutter. -Участие в проектировании и разработке новых функций и модулей. -Интеграция приложений с внешними API и сервисами. -Оптимизация производительности и устранение багов. Требования: -Опыт работы с Flutter и Dart от 1 года. -Знание принципов разработки кроссплатформенных приложений. -Опыт работы с системами контроля версий (Git). -Понимание архитектурных паттернов (BLoC, Provider и др.). -Умение работать в команде и хорошие коммуникативные навыки. -Знания полного этапа опубликования мобильных приложений. Будет плюсом: -Опыт работы с нативной разработкой под iOS и Android. -Знание других языков программирования (Kotlin, Swift, Python). -Опыт работы с CI/CD и автоматизацией процессов. При отборе будет дано тестовое задание (Написание небольшого мобильного приложения (пару экранов)).

Мобильные приложения
Опубликован:
06.12.24 07:52
Бюджет:
60000 руб.~$748.98
Фронтенд разработка

На проект нужен фронтенд разработчик. Проект оценивается в 80 - 100 часов. Проект оценивается в 80 - 100 часов. Часть фронта уже написана - необходимо будет подключиться к текущему проекту и внести доработки и правки. Нужно знать такой стек Frontend (Next.js, React, TailwindCSS, Ant Design) Backend написан на Python (FastAPI) в идеале бы тоже в нем разбираться )) Оплата по часовой тарифной ставке

Доработка и настройка сайта
Опубликован:
06.12.24 07:11
Бюджет:
150000 руб.~$1872.43
Требуется репетитор PHP или Python

Имеется сайт црм... в котором есть не доработки. Нужен репетитор, при помощи которого нужно создать такой же сайт.

Юзабилити, тесты и помощь
Опубликован:
06.12.24 05:39
Бюджет:
2000 руб.~$24.97
Pos система на WordPress, Opencart, Python или php

Добрый день . Нужна программа для учёта магазина(pos система ).Есть аналог point of sale for WordPress .Нужно чтоб программа имела возможность считать процент от продаж для сотрудников (зарплата будет так считаться ) .

Создание сайта
Опубликован:
06.12.24 05:18
Бюджет:
1000 руб.~$12.49
Правка кода на python (yandex_cloud_ml_sdk, flask,react)

Есть приложение, проверка загруженных документов на соответствие. Принцип действия: загрузили пдф - разбили по пунктам - через агента нашли соответствие пунктам- отобразили на фронте - подождали выбор пунктов - отправили второму агенту выбранное на проверку (найденное соответствие пункту + текст) Большая часть уже реализована. Требуется немного доработать код на python, использующий яндекс агентов и в итоге привести его в порядок (вынести настройки в .env, мелкие правки). Описание: Есть 2 агента, и пдф парсер. Требуется связать между собой агентов и вынести инициализацию + загрузку фаила для поискового индекса + создание поискового индекса в отдельный сервис с однократной инициализацией и очисткой после завершения. Никаких векторных баз не требуется. Всё делают агенты. Документация доступна в yandex Cloud + подправить логику после загрузки пдф документа. Кандидаты без опыта yandex_cloud_ml_sdk не рассматриваю. Знания react требуются для правки: реалтайм отображение результатов проверки первого агента От вас: Гит с примером работ yandex_cloud_ml_sdk, примерная стоимость,

Скрипты и боты
Опубликован:
05.12.24 22:44
Бюджет:
6000 руб.~$74.9
Исправить код, указать на ошибку. Параллельность Python

У меня реализован Телеграм-бот. Есть функция, которая запускается в 7 потоков (с разными аргументами) в режиме многопотока. Функция отправляет сообщения соответственно в 7 различных телеграм каналов на основе обработки данных. В прилагаемом файле код, который это реализует (кода самой функции там нет - он отдельно) И вроде бы все работает без ошибок, однако просмотрев историю сообщений в вышеупомянутых Телеграм-каналах я увидел, что время отправки сообщений иногда одинакова чуть ли не во всех телеграм каналах. Это приводит на мысль, что многопоток работает не как многопоток (независимо друг от друга), а будто последовательно, т.е. обработка данных идет процедурно по коду, НЕ параллельно. Нужна помощь в решении данного вопроса и указать на мою ошибку. При необходимости могу немного увеличить цену.

Скрипты и боты
Опубликован:
05.12.24 18:33
Бюджет:
500 руб.~$6.25
Разработка на python fastAPI, парсинг

Ищем сильного специалиста Предстоит решать интересные и сложные задачи, работаем в современном стеке технологий, можно будет профессионально растиВажно понимать requests, очереди задач, selenium, fast api

Backend
Опубликован:
05.12.24 15:46
Бюджет:
1500 руб.~$18.73
Доработка телеграм-бота python

Усовершенствовать существующий Telegram-бот, который предназначен для обработки фид-файла Подробности в ТЗ по ссылке. https://docs.google.com/document/d/1Xe2t_81k9_dVGCYgVsHFj2nn3bqSb87m_KIGBYPzU2U/edit?usp=sharing

Скрипты и боты
Опубликован:
05.12.24 14:20
Бюджет:
10000 руб.~$124.83
Микросервис на Python

Есть сайт на Laravel/PHP. Фронт Vue Речь идет о табличных данных. Сайт будет обращаться к микросервису: Функции мироксервиса: 1. Передать массив json данных, полученных из БД (Mysql) с доп.данными которые высчитаваются, исходя из полученного запроса к микросервису. 2. Получить данные из массива (таблицы) проверить на соответствие условиям полученным при запросе от сайта и выдать список несоответствий (предупреждений/ошибок с описанием на фронт. 3. сохранить данные при запросе и соответствии условиям. Пример данных во вложении. Примеры ограничений: 1. в базе хранятся максимальные/минимальные значения для конкретной ячейки и в случа попытки сохранения числа больше определенного - выдать сообщение. 2. в базе хранятся данные значения этой же ячейки, и если по условиям можно только подать ниже текущего значения. 3. можно подать только ниже самого маленького значения среди всех сохраненных значений от разных пользователей.

Доработка и настройка сайта
Опубликован:
05.12.24 13:27
Бюджет:
30000 руб.~$374.49
Разработка ПО на Python

Есть ПО на Python, необходимо реализовать несколько хотелок. Более подробное ТЗ скину при личном общении; В перспективе дальнейшее сопровождение продукта. Пишите в откликах стоимость часа разработки;

Десктоп программирование
Опубликован:
05.12.24 10:46
Бюджет:
20000 руб.~$249.66

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

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