Пользовательские действия
Пользовательские действия
Действия Frame.io обеспечивают быстрый доступ к часто используемым операциям с медиафайлами, таким как загрузка, переименование и дублирование элементов, а также позволяют осуществлять интеграцию со сторонними инструментами и сервисами прямо в пользовательском интерфейсе Frame.io.
О действиях
С появлением функции «Пользовательские действия» разработчики могут настраивать собственные действия и управлять ими в Frame.io V4. Используя ту же базовую систему событий, что и веб-перехватчики, пользовательские действия предоставляют разработчикам альтернативный механизм для связывания своих ресурсов с наиболее важными для пользователей инструментами в их учетной записи Frame.io.
Действия может выполнять любой пользователь, являющийся участником рабочей среды Frame.io, в которой это действие включено. При выполнении действия Frame.io отправляет полезную нагрузку на указанный вами URL-адрес. Принимающее приложение отвечает кодом состояния HTTP для подтверждения получения или специальным обратным вызовом для рендеринга дополнительных полей формы в интерфейсе Frame.io. В качестве принимающего приложения может выступать как ваша собственная размещенная на сервере программа, так и сторонний сервис или даже малокодовый/бескодовый инструмент IPaaS, например Workfront Fusion или Zapier.
Используйте пользовательские действия для создания интеграций непосредственно в Frame.io в качестве программируемых компонентов интерфейса. Это позволяет получить рабочие процессы, запускаемые пользователями в приложении, используя ту же базовую систему маршрутизации событий, что и веб-перехватчики. Вы можете создавать запускаемые пользователями одно- или многошаговые формы, которые возвращаются в Frame.io в виде новой формы или базового ответа. Когда пользователь нажимает пользовательское действие для ресурса, Frame.io отправляет полезную нагрузку на указанный вами URL-адрес. Принимающее приложение отвечает кодом состояния HTTP для подтверждения получения или специальным обратным вызовом для рендеринга дополнительных элементов интерфейса в Frame.io.
Улучшение действий в версии V4
Опираясь на опыт пользователей нашей предыдущей версии, мы внесли ряд улучшений в набор функций «Действия» в Frame.io V4.
Перенесенные действия
При переносе в версию Frame.io V4 учетной записи с пользовательскими действиями, созданными в предыдущей версии Frame.io, следует учесть несколько моментов.
Статус действий
После переноса учетной записи в Frame.io V4 все пользовательские действия, созданные в более ранних версиях, получат статус null и будут автоматически отключены. Это дает пользователям возможность сначала обновить свои действия для работы с API-интерфейсом V4 перед их включением, любые необновленные действия будут завершаться ошибкой. Чтобы определить действия, имеющие этот статус, перейдите на страницу настроек действий и посмотрите их состояние в столбце «Статус» или, если вы используете API-интерфейс, проверьте поле is_active.
Доступные для действий ресурсы: файлы, папки и стеки версий
Учитывая разделение типов ресурсов в API-интерфейсе Frame.io V4, следует учитывать логику поведения при интерпретации идентификатора ресурса, полученного в полезной нагрузке вашего действия. Логика для отдельных файлов предельно проста: идентификатор будет указывать на конкретный файл, для которого было выполнено действие. Аналогично и для папок — вы получите идентификатор той папки, для которой было выполнено действие. Однако, в зависимости от сценария использования, есть несколько вариантов при определении поведения вашего действия. Используйте идентификатор папки для выполнения последующих вызовов к API-интерфейсу Frame.io, если хотите взаимодействовать с самим ресурсом папки. В качестве альтернативы можно получить дочерние элементы этой папки для выполнения дальнейшей обработки ресурсов внутри нее. Когда действие выполняется для стека версий, ваша полезная нагрузка будет содержать идентификатор «головного ресурса» — файла, который находится на самом верху стека и отображается в интерфейсе.
Подробнее о различиях между предыдущей версией API-интерфейса Frame.io и версией V4 — в нашем руководстве по миграции.
Настройте пользовательские действия с помощью API-интерфейса.
Для пользовательского действия требуются следующие поля.
Настройка пользовательского действия
Когда пользователь запускает пользовательское действие, Frame.io отправляет полезную нагрузку на указанный вами URL-адрес. Принимающее приложение отвечает кодом состояния HTTP для подтверждения получения или специальным обратным вызовом для рендеринга дополнительных элементов интерфейса в Frame.io.
Чтобы создавать пользовательские действия для рабочей среды, требуются разрешения администратора учетной записи. Попросите администратора изменить ваши разрешения, если у вас нет доступа.
Настройка работы с множеством ресурсов
Поддержка множества ресурсов задается в настройках и должна быть прямо включена в модальном окне настроек действия в веб-версии. Это можно сделать как при создании нового действия, так и при обновлении уже существующего.
При включении поддержки множества ресурсов формат полезной нагрузки сразу переключается. Предыдущий формат полезной нагрузки и формат с поддержкой множества ресурсов являются взаимоисключающими.
Полезная нагрузка от Frame.io
Когда пользователь нажимает ваше пользовательское действие, полезная нагрузка отправляется на URL-адрес, указанный вами в поле URL. Используйте эту полезную нагрузку для определения следующего.
Полезная нагрузка — поддержка одного или множества ресурсов
Изначально пользовательские действия принимали только один ресурс на запрос, используя объект resource, содержащий один ресурс. При включенной поддержке множества ресурсов полезная нагрузка использует список resources, включающий один или множество ресурсов (максимум 100 ресурсов в одном запросе).
Устаревшая полезная нагрузка — поддержка только одного ресурса
Переход с устаревшей полезной нагрузки
Планируется прекращение поддержки устаревшей полезной нагрузки, поэтому пользователям настоятельно рекомендуется перевести свои сервисы на обработку нового формата данных.
Включение конфигурационного флага и обновление логики обработки полезной нагрузки позволят действию легко перейти на поддержку множества ресурсов.
-
Замените использование одиночного объекта
resourceна списокresources. 2. Обновите код для итерации по спискуresources. -
Включите флаг множества ресурсов в конфигурации действий.
Взаимодействия, повторные попытки и таймауты
interaction_id — это уникальный идентификатор для отслеживания взаимодействия по мере его развития. Если вам не нужно отвечать пользователю, просто верните код состояния 200, и все готово. Хотя это необязательно, мы рекомендуем включить информацию о результате действия, например сообщение о выполнении или предупреждение об ошибке. Пользовательские действия поддерживают обратные вызовы сообщений.
Frame.io ожидает ответ менее чем за 10 секунд и совершает до 5 повторных попыток в ожидании ответа. В идеале ответ должен быть мгновенным, а асинхронные действия должны выполняться после запуска через пользовательское действие.
Создание обратного вызова для сообщений
В своем ответе HTTP на событие веб-перехватчика можно вернуть объект JSON с описанием сообщения, которое отобразится запустившему действие пользователю в интерфейсе Frame.io.
Сообщения позволяют отправлять обратную связь пользователю непосредственно в интерфейсе Frame.io. Если вам нужно собрать дополнительную информацию от пользователя, используйте вместо них обратные вызовы форм.
Создание обратного вызова для форм
Допустим, вам требуется получить больше информации перед началом процесса. Например, вы добавляете контент в систему, которая требует ввода дополнительных данных. В таком случае вы можете описать форму в своем ответе — пользователь заполнит ее и отправит обратно вам. Пример
Когда пользователь отправит форму, вы получите событие по тому же URL-адресу, что и в исходном запросе POST.
Все пользовательские поля, добавленные в форму, отображаются в разделе data полезной нагрузки JSON, которая отправляется Frame.io. Используйте interaction_id для сопоставления исходного запроса с этими новыми данными формы. Вы можете ответить сообщением или вызвать другую форму в цепочке. Связывая в цепочку действия, формы и сообщения, можно эффективно программировать многоэтапные рабочие процессы в Frame.io с бизнес-логикой из внешней системы.
Сведения о форме
Как и сообщения, формы поддерживают атрибуты title и description, которые отображаются в верхней части формы. Помимо этого, каждое поле формы принимает следующие базовые атрибуты.
Поддерживаемые типы полей
Текстовое поле
Простое текстовое поле без дополнительных параметров.
Текстовая область
Простая текстовая область без дополнительных параметров.
Список выбора
Определяет список вариантов, из которых пользователь может выбирать. Должен включать в себя массив вариантов options. Каждый элемент этого массива должен содержать легко читаемое человеком имя name и считываемое машиной значение value.
Флажок
Простой флажок без дополнительных параметров.
Ссылка
Простая ссылка без дополнительных параметров.
Модель разрешений Frame.io
Пользовательские действия имеют специальную модель разрешений: они принадлежат рабочей среде, а не конкретному пользователю, существующему в учетной записи. Это означает следующее.
Безопасность и проверка
По умолчанию для всех пользовательских действий генерируется ключ подписи при их создании. Эту установку нельзя изменить. Данный ключ можно использовать для проверки того, действительно ли запрос исходит от Frame.io. В запрос POST включается следующее.
Проверка подписи
Предоставленная подпись имеет префикс v0=. В настоящее время в Frame.io существует только одна версия для подписи запросов. Необходимо добавить этот префикс к вычисленной вами подписи.
Обратная связь
Мы будем рады узнать от разработчиков и пользователей, как вы бы хотели использовать действия в Frame.io V4. Обязательно делитесь с нами своими вопросами, идеями и сценариями использования, чтобы мы могли правильно определить приоритеты.