Разработка клиента для получения вайбер сообщений
1) PHP (7.3.18) / Laravel (7.10.3)
2) пакет https://caffeinatedpackages.com/guide/packages/modules.html (обязательно!)
3) mysql >= 5.7
4) git
5) строгая типизация
6) SOLID
7) Ответы сервера должны быть в формате json. Использовать нужно вот этот хелпер https://nwidart.com/laravel-modules/v6/introduction
Детали технического задачния:
Задача будет состоять из 3-х крупных блоков:
1) API для фронтенда
2) API сторонних сервисов
3) WebHook для Вайбер
4) Система отправки сообщений
Необходимо создать миграции и модули для таблиц:
viber_user_bots
структура:
id, user_id, bot_name, bot_key, created_at, updated_at
отношения:
viber_user_bots.user_id = users.id | cascade
viber_bot_message_statuses (модель не нужна, но нужен сид)
id, name, created_at, updated_at
Сид: новое, прочитано, отправлено
viber_bot_message_message_types (модель не нужна, но нужен сид)
id, name, created_at, updated_at
Сид: text, picture, video, file, location, contact, sticker, carousel content, url
viber_bot_recipients
id, viber_key, name, avatar, created_at, updated_at
Один пользователь может принадлежать многим рассылкам и многим клиентам!
viber_bot_messages
id, bot_id, message_id, recipient, message, message_type, media (json), status, created_at, updated_at
отношения:
viber_bot_messages.bot_id = viber_user_bots.id | cascade
viber_bot_messages.recipient = viber_bot_recipients.viber_key | cascade
viber_bot_messages.message_type = viber_bot_message_message_types.id | null
viber_bot_messages. status = viber_bot_message_statuses.id | null
В этой модели необходимо описать все отношения и методы для получения библиотечных данных для viber_bot_message_message_types и viber_bot_message_statuses
Необходимо создать контроллеры и эндпоины:
API для фронтенда
1) GET | api/v1/viber-bot/get-unreaded-count - возвращает количество непрочитанных сообщений для текущего авторизованного пользователя. Параметры отсутствуют.
2) GET | api/v1/viber-bot/get-bot-list - возвращает список ботов текущего пользователя и количество непрочитанных сообщений для каждого бота. Параметры отсутствуют.
3) GET | api/v1/viber-bot/get-chats/{bot_id} - возвращает список всех чатов (получателей) в пределе данного бота и количество непрочитанных сообщений.
Параметры:
bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.
4) GET | api/v1/viber-bot/{bot_id}/message/{recipient} - Получение всей переписки с определенным получателем в пределах одного бота. В ответе должны присутствовать не только id типов и статусов, а и сами статусы.
Параметры:
bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.
recipient - ключ получателя
5) POST | api/v1/viber-bot/{bot_id}/message - отправка сообщения получателю.
Параметры:
bot_id - id бота. Необходимо проверить принадлежит ли этот id пользователю который его запрашивает.
recipient - ключ получателя
message - сообщение (опционально, если есть медиа файл)
media - данные об отправляемом файле/ссылке/т.д. (опционально)
message_type - id типа сообщения
6) GET | api/v1/viber-bot/get-message-types - получение списка типов сообщений и их id. Параметры отсутствуют.
7) GET | api/v1/viber-bot/get-message-statuses - получение списка статусов сообщений и их id. Параметры отсутствуют.
API сторонних сервисов
Все точно также как и для "API для фронтенда" только ссылка будет отличаться и изменится с
api/v1 на api/v2
WebHook для Вайбер
Необхожимо разработать динамический метод для viber WebHook.
Эндпоинт ANY api/nsfw/viber-bot/{user_id}/{bot_id}
Где:
user_id - id пользователя который создал бота
bot_id - id бота
Подробно о том что и как будет передаваться на вебхук можно почитать тут - https://developers.viber.com/docs/api/rest-bot-api/#callbacks
Система отправки сообщений
Для отправки сообщений ожидается использование laravel event и очередей.
-
39 Добрий день. Займаюсь розробкою на Laravel з 2016го року. Поточний рейт - 15$/год. Основний напрям досвіду - написання АРІ для додатків
Актуальные фриланс-проекты в категории PHP
Модуль для OpenCart: массовое создание товаров из папок с изображениямиРазработка модуля массового создания товаров для OpenCart (ocStore 3.x) Необходимо разработать административный модуль для OpenCart / ocStore 3.x, который автоматически создает товары из заранее подготовленной структуры папок с изображениями.Основной функционал: массовое… CMS, PHP ∙ 9 часов 40 минут назад ∙ 28 ставок |
Разработчик на проект CMS-сайт на Drupal 7 + PHP/MySQL.Ищем разработчика для помощи с настройкой CMS-сайта на Drupal 7 + PHP/MySQL. Задача:1. Сделать карточки товара на весь ассортимент товара (в настоящее время на сайте не на всех товарах есть карточки товара с описанием и характеристиками).2. Добавить верные характеристики на… CMS, PHP ∙ 2 дня 13 часов назад ∙ 39 ставок |
Ищем специалиста Bitrix24 / интегратора CRM для настройки автоматизацииНаша компания работает с CRM Bitrix24. Нам нужен специалист, который сможет настроить автоматическое добавление номера телефона в лиды/заказы в двух форматах. Автоматизация должна быть корректно настроена для двух стран: Республика Молдова и Румыния. Задача: При создании лида… PHP, Веб-программирование ∙ 3 дня 12 часов назад ∙ 24 ставки |
Оптимизация сайтаОптимазация сайта jdgreta.co.uk на Shopify. Сео аудит приложен к проекту. Основные задачи - - Поправить все мета данные - Выполнить ТЗ для программиста (тк в этом проекте совмещены задачи для программиста и СЕО, если вы не компания - можете использовать помощь) - Поправить… HTML и CSS верстка, PHP ∙ 4 дня 8 часов назад ∙ 33 ставки |
Специалист по HoroshopНужен специалист, который сможет правильно настроить товарный Feed. Проблема: Сейчас более 13 000 товаров выгружаются с одинаковым значением типа (например, «все для маникюра и педикюра»). Из-за этого в Google Ads невозможно разделить товары на сегменты и задать разные… PHP, Сопровождение сайтов ∙ 5 дней 10 часов назад ∙ 21 ставка |