Обзор пользовательских действий
Обзор пользовательских действий
Примеры приложений
Если вы хотите создать собственное приложение с пользовательскими действиями, наши примеры приложений помогут вам начать работу:
Пользовательские действия — это способ создания интеграций непосредственно в Frame.io как программируемых компонентов пользовательского интерфейса. Это позволяет создать целый класс рабочих процессов, которые могут быть запущены пользователями в приложении, используя ту же базовую систему маршрутизации событий, что и Веб-перехватчики. В настоящее время пользовательские действия доступны для ресурсов и отображаются в контекстном меню или меню, вызываемом правой кнопки мыши, для любого ресурса, как показано на изображении ниже. 
Ресурс — это надежное представление файла в S3 и его контекста в Frame.io. Включает перекодировки, контекст пользователя/команды/проекта и метаданные. Когда пользователь нажимает пользовательское действие на ресурсе, Frame.io отправляет полезную нагрузку на предоставленный вами URL-адрес. Принимающее приложение может затем ответить с кодом состояния HTTP, чтобы просто подтвердить получение, или может ответить с настраиваемым обратным вызовом, который может выполнить рендеринг дополнительного пользовательского интерфейса в Frame.io.
Настройка пользовательского действия
Проверка разрешений
Чтобы создать пользовательские действия для команды, требуются разрешения менеджера команды. Попросите администратора изменить ваши разрешения, если у вас нет доступа.
Пользовательские действия можно настроить в области Пользовательские действия на developer.frame.io. Для действия требуется:
Нажмите «Содержимое полезной нагрузки Frame.io»
Когда пользователь нажимает ваше пользовательское действие, полезная нагрузка отправляется на URL-адрес, указанный вами в поле URL.
Эту полезную нагрузку можно использовать для определения следующего:
- Какое из ваших пользовательских действий нажато
- Какой ресурс нажат
- Какой пользователь выполнил действие
О взаимодействиях
interaction_id предоставляется как уникальный идентификатор, который поможет вам отслеживать взаимодействие по мере его развития. Если вам не нужно отвечать пользователю, просто верните код состояния 200, и все готово. Хотя это необязательно, мы рекомендуем включить информацию о результате действия, например простое сообщение о выполнении или предупреждение об ошибке. Пользовательские действия поддерживают обратные вызовы сообщений.
Повторные попытки и таймауты
Наше приложение ожидает ответ менее чем за 5 секунд и будет повторять попытки до 5 раз в ожидании ответа. Лучше всего отвечать незамедлительно и выполнять любые действия асинхронно после запуска через пользовательское действие.
Создание обратного вызова для сообщений
В вашем ответе HTTP на событие веб-перехватчика вы можете вернуть объект JSON, описывающий сообщение, которое будет возвращено инициирующему пользователю в пользовательском интерфейсе Frame.io. Если вы хотите попробовать создать сообщение и посмотреть, как оно будет выглядеть, воспользуйтесь нашим Custom Action Builder. Он позволяет настраивать обратные вызовы сообщений или формы и сразу видеть, как они будут отображаться в веб-приложении Frame.io.
Пример объекта:
Для пользователя отобразится предупреждение, которое выглядит так:
Сообщения — это простой способ завершить жизненный цикл действия таким образом, чтобы предоставить переменный контекст действующему пользователю, не заставляя его переключать контексты.
Этого достаточно для многих случаев использования, но иногда начальная полезная нагрузка и последующие вызовы к API-интерфейсу Frame.io не предоставляют достаточно контекста для принимающего приложения. Для таких сценариев мы также поддерживаем Form Callbacks.
Создание обратного вызова для форм
Допустим, требуется дополнительная информация, прежде чем начать процесс. Например, можно добавлять контент в систему, которая требует дополнительных сведений и настроек. Можно «описать» в своем ответе форму, которую пользователь действительно увидит! И заполнит! И она будет отправлена прямо вам!
Вот пример формы, которая будет выполнять рендеринг формы в пользовательском интерфейсе Frame.io. Первоначальный действующий пользователь сможет заполнить и отправить ее:
Когда пользователь отправит форму, вы получите событие по тому же URL-адресу, что и в исходном запросе POST:
Все настраиваемые поля, которые вы добавили в форму, отображаются в разделе data полезной нагрузки JSON, отправляемой Frame.io. Используйте interaction_id для сопоставления исходного запроса и этих новых данных формы.Если хотите, можно ответить сообщением (или даже другой формой!).
Связывая действия, формы и сообщения, можно эффективно программировать целые рабочие процессы ресурсов в Frame.io с бизнес-логикой из внешней системы.
Проявите фантазию!Нет никаких ограничений.
Сведения о форме
Как и сообщения, формы поддерживают атрибуты заголовок и описание, которые отображаются в верхней части формы. Помимо этого, каждое поле формы принимает следующие базовые атрибуты:
тип— указывает пользовательскому интерфейсу Frame.io, какой тип данных ожидать и рендеринг какого компонента выполнять.метка— отображается в пользовательском интерфейсе как заголовок над полем.имя— ключ, по которому поле будет идентифицироваться в последующей полезной нагрузке.значение— значение для предварительного заполнения поля.
Поддерживаемые типы полей
Текстовое поле
Простое текстовое поле без дополнительных параметров.
Текстовая область
Простая текстовая область без дополнительных параметров.
Select list
Defines a picklist that the user can choose from. Must include an options list, each member of which should include a human-readable name, and a machine-parseable value.
**Список выбора**. Определяет список выбора, из которого пользователь может выбирать.Должен включать списоквариантов, каждый участник которого должен содержать доступное для чтения пользователем имяизначение`, которое может распознать машина.
Пользовательские действия и модель разрешений Frame.io
Веб-перехватчики и пользовательские действия имеют специальную модель разрешений: они принадлежат команде, а не конкретному пользователю, который существует в команде или учетной записи. Это означает:
- Любой администратор или менеджер команды может cоздать пользовательское действие в команде.
- Любой администратор или менеджер команды может изменить или удалить пользовательское действие, которое существует в команде. После изменения все пользователи сразу увидят результат изменений.
Безопасность
По умолчанию все пользовательские действия имеют ключ подписи, созданный во время их создания. Это не настраивается. Данный ключ можно использовать для проверки того, исходит ли запрос от Frame.io.
Проверка
В запрос POST включается следующее:
Проверка подписи
- Извлечение подписи из заголовков HTTP
- Создайте сообщение для подписи путем объединения версии, времени доставки и тела запроса
v0:timestamp:body
- Вычислите подпись HMAC SHA256 с помощью вашего секретного ключа подписи.
*Примечание. К предоставленной подписи добавлен префикс v0=. В настоящее время в Frame.io существует только одна версия для подписи запросов. Необходимо добавить этот префикс к вашей вычисленной подписи.
4. Сравните!