Обзор веб-перехватчиков
Обзор веб-перехватчиков
Пример приложения
Чтобы создать собственный потребитель для веб-перехватчиков Frame.io, можете использовать и расширять наш образец приложения на Github.
Введение
Веб-перехватчики предоставляют способ использования событий, происходящих внутри Frame.io, в качестве уведомлений, которые можно отправить во внешние системы для обработки, обратные вызовы API-интерфейса и автоматизации рабочих процессов.
Настройка
Веб-перехватчики можно настроить в области веб-перехватчиков на сайте для разработчиков. Для веб-перехватчика требуется:
- Название — будет отображаться только на сайте для разработчиков.
- URL-адрес — место доставки событий.
- Команда — к какой команде будет добавлен этот веб-перехватчик.
- События — какое событие или какие события должны запускать веб-перехватчик.
Поддерживаемые события
Один веб-перехватчик может подписаться на любое количество следующих событий:
Проекты
Ресурсы
Версионирование ресурса
Когда сработает событие asset.versioned, вы получите полезную нагрузку с идентификатором ресурса, который был версионирован, а не сам стек версий. Поэтому, чтобы передать этот идентификатор в другую функцию, полагая, что это идентификатор стека версий, вам сначала потребуется найти и отследить этот конкретный «родительский» ресурс.
Обновления меток ресурса
Событие asset.label.updated не сработает, когда метка статуса изменится через вызов PUT к конечной точке /v2/assets/:id через общедоступный API-интерфейс (BES-408). Однако оно сработает, когда метка статуса обновится с помощью любых встроенных приложений и интеграций Frame.io (веб-версия, iOS, Premiere, After Effects, FCPX и т. д.).
Комментарии
Ссылки для проверки
Соавторы
Участники команды
Полезная нагрузка
Frame.io доставляет полезную нагрузку JSON на указанную конечную точку веб-перехватчика. Вот пример полезной нагрузки для события asset.created:
Все полезные нагрузки содержат поле тип, указывающее тип происходящего события, а также объект resource. Объект resource определяет тип и ИД ресурса, связанного с этим событием. В приведенном выше примере события asset.created это будет ИД для только что созданного ресурса. Дополнительно включены объекты пользователь и команда. Они ссылаются на пользователя, который инициировал событие, и контекст команды для ресурса. Помимо непосредственного контекста пользователя и команды, мы не включаем никакой дополнительной информации о подписанном ресурсе. Если вашему приложению требуется дополнительная информация или контекст, рекомендуется использовать наш API-интерфейс HTTP для выполнения последующих запросов.
Повторные попытки
В случае ошибки (ответ с кодом состояния, отличным от 200) или таймаута при доставке веб-перехватчика вашему сервису отправка полезной нагрузки будет повторяться три раза, всего четыре попытки.
Безопасность
По умолчанию все веб-перехватчики предоставляются с ключом подписи. Это не настраивается. Данный ключ можно использовать для проверки того, исходит ли запрос от Frame.io.
Проверка подписей веб-перехватчика
Чтобы защитить интеграцию от атак типа «человек посередине» и атак повторного воспроизведения, важно проверять подписи веб-перехватчика. Проверка гарантирует, что полезная нагрузка веб-перехватчика действительно была отправлена платформой Frame.io, а ее содержимое не было изменено при передаче.
В запрос POST включается следующее:
Выполните следующие шаги для проверки подписи.
- Извлечение подписи из заголовков HTTP
- Создание сообщения для подписи, объединив версию, время доставки и тело запроса в формате:
v0:timestamp:body - Вычислите подпись HMAC SHA256 с помощью вашего секретного ключа подписи. Примечание. К предоставленной подписи добавлен префикс
v0=. В настоящее время в Frame.io существует только одна версия для подписи запросов. Убедитесь, что этот префикс добавлен к вычисленной вами подписи. - Сравните!