01.1.9 Make¶
| Версия | 1.1.0 |
|---|---|
| Количество листов |
Оглавление¶
История изменений¶
| №1 | Дата: 24.07.26 | Автор:Ляшук Андрей | RFC: RPL-2849 | Версия: 1.1.0 |
|---|---|---|---|---|
| Изменено: • В “1.1 Параметры webhook события(webhook_events)” в параметр “event_type” добавлен тип события “5 — Изменение статуса коллаборации”. |
1. Make¶
Сервис Make используется для получения и обработки событий, которые происходят в ИС Rippla.
Интеграция с сервисом осуществляется на основе документации сервиса.
1.1 Параметры webhook события(webhook_events)¶
| Название | Параметр | Формат | Обяз. | Уник. | Примечание |
|---|---|---|---|---|---|
| Идентификатор | id | serial | да | да | |
| Тип события | event_type | enum | да | да | Возможны следующие типы событий: 1 - Создание пользователя; 2 - Создание локации; 3 - Создание коллаборации; 4 - Создание кампании; 5 - Изменение статуса коллаборации. |
| Webhook URL | webhook_url | text | да | нет | |
| Apikey | apikey | text | да | нет |
1.2 Очередь отправки событий в Make¶
Очередь предназначена для отправки событий в Make.
Очередь состоит из:
- Брокера сообщений который предназначен для хранения информации о событии которое должно быть отправлено.
- Обработчика сообщений.
Повторная отправка сообщения очереди
Если сообщение не было обработано Обработчиком сообщений, должна выполняться повторная отправка сообщения Обработчику сообщений согласно настройкам повторной отправки сообщений.
Настройки повторной отправки сообщений
| Настройка | Значение | Описание |
|---|---|---|
| Первоначальная отсрочка | 30000 | Первоначальная отсрочка отправки сообщения в миллисекундах. |
| Количество попыток | 30 | Количество повторных попыток отправки сообщения |
| Множитель отсрочки | 1 |
1.2_1 Параметры сообщения “Webhook event”
| Название | Ключ | Значение |
|---|---|---|
| Тип события | event_type | |
| Идентификатор сущности | entity_id | Сущность определяется согласно типу события. |
01.1.9_1.2_1 Процедура отправки события в Make¶
- Наступает время обработки сообщения, брокер отправляет сообщение обработчику сообщений.
- Обработчик получает сообщение “Webhook event”.
- Выполняется логирование события с Payload:
- event - "received";
- title - “Webhook event”;
- data.event_type - Тип события, которое был получено в сообщении для которого была инициирована данная процедура;
- data.entity_id - Идентификатор события, который был получен в сообщении для которого была инициирована данная процедура.
- Если не имеется “Webhook события” тип события которого соответствует значению параметра “event_type”, который был указан в сообщении для которого была инициирована данная процедура:
- Логирование события с Payload:
- event - "processed";
- title - “Webhook event”;
- info - “Webhook event not found”;
- data.event_type - Тип события, которое был получено в сообщении для которого была инициирована данная процедура;
- data.entity_id - Идентификатор события, который был получен в сообщении для которого была инициирована данная процедура.
- Брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- Логирование события с Payload:
- Если имеется “Webhook события” тип события которого соответствует значению параметра “event_type”, который был указан в сообщении для которого была инициирована данная процедура выполняется этап “5” данной процедуры.
- Выполняется запрос к сервису “Make”:
- Метод - POST;
- URL - Согласно “Webhook URL” webhook события, “Тип события” которого соответствует “event_type”, который был указан в сообщении для которого была инициирована данная процедура;
- Заголовки:
- x-make-apikey - Согласно “Apikey” webhook события, “Тип события” которого соответствует “event_type”, который был указан в сообщении для которого была инициирована данная процедура.
- С телом запроса:
- entity_id - “entity_id”, который был указан в сообщении для которого была инициирована данная процедура.
- Если запрос, который должен был быть выполнен на этапе “5” данной процедуры:
- Не был выполнен:
- Выполняется логирование события с Payload:
- event - "processed";
- title - “Webhook event”;
- error - “Can’t send request”;
- data.event_type - Тип события, которое был получено в сообщении для которого была инициирована данная процедура;
- data.entity_id - Идентификатор события, который был получен в сообщении для которого была инициирована данная процедура.
- Брокеру сообщений не возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются;
- Если сообщение “Webhook event” удаляется из очереди:
- В очередь “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
- text - “Callback to Make has not been processed. Reason: request was not sent. Event type: {event_type}. URL: {Webhook URL}. Headers: { "x-make-apikey": "{Apikey}" }. Body: { "entity_id": "{entity_id}" }”.
- Брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- В очередь “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
- Выполняется логирование события с Payload:
- Был выполнен:
- И код ответа не “200”:
- Выполняется логирование события с Payload:
- event - "processed";
- title - “Webhook event”;
- error - “Webhook return error”;
- data.event_type - Тип события, которое был получено в сообщении для которого была инициирована данная процедура;
- data.entity_id - Идентификатор события, который был получен в сообщении для которого была инициирована данная процедура.
- Брокеру сообщений не возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- Если сообщение “Webhook event” удаляется из очереди:
- В очередь “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
- text - “Callback to Make has not been processed. Reason: webhook returned error. Event type: {event_type}. URL: {Webhook URL}. Headers: { "x-make-apikey": "{Apikey}" }. Body: { "entity_id": "{entity_id}" }”.
- Брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- Выполняется логирование события с Payload:
- И код ответа не “200”:
- И код ответа “200”, брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.