Интеграция Power Automate с веб-сайтами и приложениями
Вы можете внедрять функции Power Automate в приложения и веб-сайты с помощью мини-приложений потоков, открывая пользователям удобный способ автоматизации своих личных и рабочих задач.
Мини-приложения потоков представляют собой элементы iframe, размещаемые в коде документа ведущего приложения. Этот документ ссылается на страницу в конструкторе Power Automate. Мини-приложения позволяют интегрировать определенный функционал Power Automate в стороннее приложение.
Мини-приложения могут быть простыми, например, они могут отображать список шаблонов без какого-либо взаимодействия между ведущим приложением и iframe. Но они могут быть и сложными. Например, они могут создавать облачный поток на основе шаблона, а затем активировать его с использованием двусторонней связи между ведущим и мини-приложением.
Предварительные условия
- Учетная запись Майкрософт либо
- рабочая или учебная учетная запись.
Мини-приложение без проверки подлинности
Чтобы использовать мини-приложение шаблонов без проверки подлинности, внедрите его непосредственно в ведущее приложения с помощью iframe. Пакет JS SDK или маркер доступа не требуются.
Отображение шаблонов для сценариев
Для начала добавьте следующий код, чтобы отобразить шаблоны Power Automate на вашем веб-сайте:
<iframe src="https://flow.microsoft.com/{locale}/widgets/templates/?q={search term}
&pagesize={number of templates}&destination={destination}&category={category}"></iframe>
Параметр | Описание |
---|---|
locale | Четырехбуквенный код языка и региона для представления шаблона. Например, en-us представляет американский английский, а de-de — немецкий. |
search term | Условие поиска для шаблонов, которые отобразятся в представлении. Например, чтобы отобразить шаблоны для приложения SharePoint , нужно выполнить поиск по условию SharePoint. |
number of templates | Число шаблонов, которые отобразятся в представлении. |
destination | Страница, которая открывается, когда пользователь выбирает шаблон. Введите details , чтобы отобразить сведения о шаблоне, или new , чтобы открыть конструктор Power Automate. |
category | Фильтр для заданной категории шаблонов. |
parameters.{name} | Дополнительный контекст, передаваемый в поток. |
Если параметр destination имеет значение new
, при выборе пользователем шаблона откроется конструктор Power Automate, где можно создать облачный поток. В следующем разделе подробно описано, как использовать мини-приложение.
Передача дополнительных параметров в шаблон потока
Если пользователь находится в определенном контексте веб-сайта или приложения, этот контекст можно передать в поток. Например, пользователь может открыть шаблон При создании элемента, глядя на определенный список в SharePoint. Чтобы передать идентификатор списка как параметр в поток, сделайте следующее:
- Определите параметр в шаблоне потока перед его публикацией. Параметр выглядит так:
@{parameters('parameter_name')}
. - Передайте параметр в строку запроса iframe src. Например, добавьте
¶meters.listName={the name of the list}
, если у вас есть параметр с именем listName.
Полный пример
Чтобы отобразить первые четыре шаблона SharePoint на немецком языке и предоставить пользователю myCoolList, используйте следующий код:
<iframe src="https://flow.microsoft.com/de-de/widgets/templates/?q=sharepoint%20&pagesize=4&destination=details¶meters.listName=myCoolList"></iframe>
Мини-приложения потоков с аутентификацией
В следующей таблице приведен список мини-приложений Power Automate, в которых можно использовать все возможности с помощью маркера доступа для проверки подлинности пользователей. Для внедрения мини-приложений и предоставления требуемого маркера необходим пакет средств разработки программного обеспечения JavaScript (JS SDK) для Power Automate.
Тип мини-приложения | Поддерживаемая функция |
---|---|
flows | Отображает список потоков на вкладке для личных и общих потоков. Позволяет изменить существующий поток или создать новый на основе шаблона или с нуля. |
flowCreation | Создает облачный поток на основе идентификатора шаблона, предоставляемого ведущим приложением. |
runtime | Активирует поток с ручными или гибридными триггерами, предоставленный ведущим приложением. |
approvalCenter | Внедряет запросы на утверждение и отправленные утверждения. |
templates | Отображает список шаблонов. Пользователь может выбрать один из них для создания потока. |
Используйте пакет SDK для Flow с проверкой подлинности, чтобы дать пользователям возможность создавать потоки и работать с ними непосредственно на веб-сайте или в приложении, а не в Power Automate. Для работы такого SDK пользователям нужно будет входить с учетной записью Майкрософт или через Azure Active Directory.
Note
Скрыть фирменную символику Power Automate при использовании мини-приложений невозможно.
Архитектура мини-приложений
Мини-приложения Power Automate работают путем внедрения iframe, который ссылается на Power Automate в ведущем приложении. Ведущее приложение предоставляет маркер доступа, необходимый мини-приложению Power Automate. Пакет JS SDK для Power Automate позволяет ведущему приложению инициализировать и контролировать жизненный цикл мини-приложения.
Сведения о пакете JS SDK
Разработчики Power Automate предоставляют пакет JS SDK для упрощения интеграции мини-приложений Flow в сторонние приложения. Пакет JS SDK для Flow можно скачать по общедоступной ссылке в службе Flow. Он позволяет ведущему приложению обрабатывать события из мини-приложения и взаимодействовать с приложением Flow, отправляя в мини-приложение действия. События и действия мини-приложения зависят от его типа.
Инициализация мини-приложения
Перед инициализацией мини-приложения необходимо добавить в ведущее приложение ссылку на пакет JS SDK для Flow.
<script src="https://flow.microsoft.com/Content/msflowsdk-1.1.js"></script>
Создайте экземпляр пакета JS SDK, передав необязательные значения hostName и locale в объект JSON.
var sdk = new MsFlowSdk({
hostName:'https://flow.microsoft.com',
locale:'en-US'
});
Имя (название) | Обязательно/необязательно | Описание |
---|---|---|
hostName |
Необязательная | Имя узла Power Automate, например https://flow.microsoft.com |
locale |
Необязательная | Языковой стандарт клиента для мини-приложения (если не передан, по умолчанию используется en-Us ) |
После создания экземпляра JS SDK вы можете инициализировать и внедрить мини-приложение Power Automate в родительский элемент в ведущем приложении. Для этого добавьте HTML-тег div:
<div id="flowDiv" class="flowContainer"></div>
Затем инициализируйте мини-приложение Power Automate с помощью метода renderWidget()
пакета JS SDK. Укажите тип мини-приложения и соответствующие параметры.
var widget = sdk.renderWidget('<widgettype>', {
container: 'flowDiv',
flowsSettings: {},
templatesSettings: {},
approvalCenterSettings: {},
widgetStyleSettings: {}
});
Ниже приведен пример стиля контейнера, который вы можете изменить в соответствии с размерами ведущего приложения.
<head>
<style>
.flowContainer iframe {
width: 400px;
height: 1000px;
border: none;
overflow: hidden;
}
</style>
</head>
Ниже приведены параметры для renderWidget()
:
Параметр | Обязательно/необязательно | Описание |
---|---|---|
container |
Обязательные | Идентификатор элемента div на ведущей странице, куда будет внедрено мини-приложение. |
environmentId |
Необязательная | Мини-приложениям требуется идентификатор среды. Если он не указан, используется среда по умолчанию. |
flowsSettings |
Необязательная | Объект настроек Power Automate |
templatesSettings |
Необязательная | Объект параметров шаблона |
approvalCenterSettings |
Необязательная | Объект параметров утверждения |
Маркеры доступа
После запуска метода renderWidget()
пакет JS SDK инициализирует элемент iframe, который ссылается на URL-адрес мини-приложения Power Automate. Этот URL-адрес содержит все настройки в параметрах строки запроса. Перед инициализацией мини-приложения ведущее приложение должно получить для пользователя маркер доступа Power Automate (JWT-маркер Azure Active Directory с аудиторией https://service.flow.microsoft.com
). Мини-приложение инициирует событие GET_ACCESS_TOKEN
, чтобы запросить маркер доступа у ведущего приложения. Последнее должно обработать событие и передать маркер мини-приложению:
widget.listen("GET_ACCESS_TOKEN", function(requestParam, widgetDoneCallback) {
widgetDoneCallback(null, {
token: '<accesstokenFromHost>'
});
});
Ведущее приложение отвечает за обслуживание маркера и его передачу с допустимым сроком действия в мини-приложение при получении соответствующего запроса. Если мини-приложение открыто в течение продолжительного времени, ведущее приложение должно проверить срок действия маркера и при необходимости обновить маркер перед его передачей в мини-приложение.
Определение готовности мини-приложения
После успешной инициализации мини-приложение порождает событие для уведомления о своей готовности. Ведущее приложение может ожидать передачи данных события WIDGET_READY
и выполнять собственный дополнительный код.
widget.listen("WIDGET_READY", function() {
console.log("The flow widget is now ready.");
// other host code on widget ready
});
Параметры мини-приложения
FlowsSettings
FlowsSettings можно использовать для настройки функциональных возможностей мини-приложения Power Automate.
flowsSettings?: {
createFromBlankTemplateId?: string;
flowsFilter?: string;sc
tab?: string;
};
Параметр | Обязательно/необязательно | Описание |
---|---|---|
createFromBlankTemplateId |
Обязательные | Использование GUID шаблона, когда пользователь нажимает кнопку Создать с нуля в мини-приложении Flow. |
flowsFilter |
Необязательная | Мини-приложение Power Automate применяет указанный фильтр при выводе списка потоков. Например, оно может отобразить потоки, ссылающиеся на определенный сайт SharePoint. flowsFilter: "operations/any(operation: operation/sharepoint.site eq 'https://microsoft.sharepoint.com/teams/ProcessSimple' )" |
tab |
Необязательная | Активная вкладка по умолчанию для отображения в мини-приложении Power Automate. Например: tab:'sharedFlows' отображает вкладку рабочей группыtab:'myFlows' отображает вкладку "Мои потоки". |
TemplatesSettings
Этот параметр применяется ко всем мини-приложениям, которые позволяют создавать потоки на основе шаблона, включая мини-приложения Flows, FlowCreation и Templates.
templatesSettings?: {
defaultParams?: any;
destination?: string;
pageSize?: number;
searchTerm?: string;
templateCategory?: string;
useServerSideProvisioning?: boolean;
enableDietDesigner?: boolean;
};
Параметр | Обязательно/необязательно | Описание: |
---|---|---|
defaultParams |
Необязательная | Параметры времени разработки, используемые при создании облачного потока на основе шаблона, например: defaultParams: {'parameters.sharepoint.site': 'https://microsoft.sharepoint.com/teams/ProcessSimple', 'parameters.sharepoint.list': 'b3a5baa8-fe94-44ca-a6f0-270d9f821668' } |
destination |
Необязательная | Допустимые значения — "new" или "details". Если задано "details", при создании облачного потока на основе шаблона отображается страница сведений. |
pageSize |
Необязательная | Число отображаемых шаблонов (размер страницы). Размер по умолчанию = 6 |
searchTerm |
Необязательная | Отображение шаблонов, соответствующих условию поиска. |
templateCategory |
Необязательная | Отображение шаблонов в определенной категории |
ApprovalCenterSettings
Применяется к мини-приложениям ApprovalCenter.
approvalCenterSettings?: {
approvalsFilter?: string;
tab?: string;but
showSimpleEmptyPage? boolean;
hideLink?: boolean
};
Параметр | Обязательно/необязательно | Описание |
---|---|---|
hideLink |
Необязательная | Если задано значение true , мини-приложение скрывает полученные и отправленные ссылки на утверждение |
approvalsFilter |
Необязательно | Мини-приложение утверждения будет применять указанный фильтр утверждения при выведении списка утверждений, например: approvalsFilter: 'properties/itemlink eq \'https://microsoft.sharepoint.com/teams/ProcessSimple/_layouts/15/listform.aspx?PageType=4&ListId=737e30a6-5bc4-4e9c-bcdc-d34c5c57d938&ID=3&ContentTypeID=0x010010B708969A9C16408696FD23801531C6\'' approvalsFilter: 'properties/itemlinkencoded eq \'{Your base64 encoded item link url} \'' |
tab |
Необязательная | Активная вкладка по умолчанию для отображения в мини-приложении Flow. Допустимые значения: "receivedApprovals" (полученные утверждения), "sentApprovals" (отправленные утверждения) |
showSimpleEmptyPage |
Необязательная | Если утверждения отсутствуют, отображается пустая страница. |
hideInfoPaneCloseButton |
Необязательная | Скрывает на панели сведений кнопку "Закрыть" (например, если она уже есть в ведущем приложении). |
События мини-приложений
Мини-приложения Power Automate поддерживают события, и ведущее приложение может ожидать передачи данных об этих событиях в течение всего жизненного цикла мини-приложения. Мини-приложение Power Automate поддерживает два типа событий: с односторонним уведомлением (например, Widget_Ready) и инициируемые мини-приложением для получения данных от ведущего (Get_Access_Token). Чтобы отслеживать передачу данных от конкретных событий, отправляемых мини-приложением, в ведущем приложении используется метод widget.listen().
Использование
widget.listen("<WIDGET_EVENT>", function() {
console.log("The flow widget raised event");
});
Поддерживаемые события по типам мини-приложений
Событие мини-приложения | Сведения |
---|---|
WIDGET_READY |
Мини-приложение загружено. |
WIDGET_RENDERED |
Мини-приложение загружено и завершена отрисовка пользовательского интерфейса. |
GET_ACCESS_TOKEN |
Мини-приложение запрашивает внедрение маркера доступа пользователя. |
GET_STRINGS |
Позволяет узлу переопределять набор строк пользовательского интерфейса, отображаемых в мини-приложении. |
Мини-приложение среды выполнения
Событие мини-приложения | Сведения | Данные |
---|---|---|
RUN_FLOW_STARTED |
Активирован запуск потока. | |
RUN_FLOW_COMPLETED |
Поток запущен. | |
RUN_FLOW_DONE_BUTTON_CLICKED |
Пользователь нажал кнопку "Готово" в запущенном потоке. | |
RUN_FLOW_CANCEL_BUTTON_CLICKED |
Пользователь нажал кнопку "Отмена" в запущенном потоке. | |
FLOW_CREATION_SUCCEEDED |
Поток создан. | { flowUrl: string, flowId: string, fromTemplate: string } |
WIDGET_CLOSE |
Возникает, когда ведущее приложение должно закрыть мини-приложение. |
Мини-приложение создания потока
Событие мини-приложения | Сведения | Данные |
---|---|---|
FLOW_CREATION_FAILED |
Создать поток не удалось. | |
WIDGET_CLOSE |
Возникает, когда ведущее приложение должно закрыть мини-приложение. | |
TEMPLATE_LOAD_FAILED |
Загрузить шаблон не удалось. | |
FLOW_CREATION_SUCCEEDED |
Поток создан. | { flowUrl: string, flowId: string,fromTemplate?: string } |
Мини-приложение для утверждения
Событие мини-приложения | Сведения |
---|---|
RECEIVED_APPROVAL_STATUS_CHANGED |
Изменено состояние полученного утверждения. |
SENT_APPROVAL_STATUS_CHANGED |
Изменено состояние отправленного утверждения. |
Событие GET_STRINGS позволяет вам вводить свой текст для некоторых элементов пользовательского интерфейса, отображаемых в мини-приложении. Возможно изменение следующих строк:
Ключ строки | Использование в мини-приложении |
---|---|
FLOW_CREATION_CREATE_BUTTON |
Текст, отображаемый на кнопке создания потока в мини-приложениях создания потока и среды выполнения. |
FLOW_CREATION_CUSTOM_FLOW_NAME |
Начальное значение для имени потока в мини-приложении создания потока. Используется только при включенном параметре allowCustomFlowName. |
FLOW_CREATION_HEADER |
Заголовок, используемый при создании облачного потока в мини-приложениях создания потока и среды выполнения. |
INVOKE_FLOW_HEADER |
Заголовок, используемый при вызове облачного потока в мини-приложении среды выполнения. |
INVOKE_FLOW_RUN_FLOW_BUTTON |
Текст, отображаемый на кнопке вызова или запуска облачного потока в мини-приложении среды выполнения. |
Пример
Вызовите widgetDoneCallback
, передав объект JSON с парами "ключ-значение", включающими ключ строки и текст, чтобы переопределить значение по умолчанию.
widget.listen("GET_STRINGS", function(requestParam, widgetDoneCallback) {
widgetDoneCallback(null, {
"FLOW_CREATION_HEADER": "<string override would go here>",
"INVOKE_FLOW_RUN_FLOW_BUTTON": "<string override would go here>"
});
});
Действия мини-приложений
Ведущее приложение использует действия для отправки мини-приложению определенных действий и сообщений. Пакет JS SDK предоставляет метод notify()
для отправки мини-приложению сообщения или полезных данных JSON. Каждое действие мини-приложения поддерживает определенную сигнатуру полезных данных.
Использование
widget.notify('<WIDGET_ACTION>', parameterMatchingParameterInterface)
.then(result => console.log(result))
.catch(error => console.log(error))
Пример
Вызовите облачный поток, отправив мини-приложению среды выполнения следующую команду:
widget.notify('triggerFlow', { flowName: flowName, implicitData:implicitData });
Мини-приложение среды выполнения
Действие мини-приложения | Подробности | Интерфейс параметров |
---|---|---|
triggerFlow |
Активирует запуск облачного потока. | { flowName: string, implicitData?: string } |
triggerFlowByTemplate |
Активирует запуск облачного потока на основе шаблона. | { templateId: string, implicitData?: string, designTimeParameters?: Record<string, any> } |
getTriggerSchema |
Получает схему триггеров облачного потока. | { flowName: string, } |
closeWidget |
Отменяет все ожидающие действия и активирует событие WIDGET_CLOSE. |
Мини-приложение создания потока
Действие мини-приложения | Подробности | Интерфейс параметров |
---|---|---|
createFlowFromTemplate |
Создает облачный поток на основе выбранного определения шаблона. | { templateName: string, designTimeParameters?: Record<string, any> } |
createFlowFromTemplateDefinition |
Создает облачный поток на основе выбранного определения шаблона | { templateDefinition: string } |
closeWidget |
Отменяет все ожидающие действия и активирует событие WIDGET_CLOSE. |
Мини-приложение для утверждения
Действие мини-приложения | Сведения | Интерфейс параметров |
---|---|---|
closeInfoPane |
Закрывает панель со сведениями об утверждении. | Н/Д |
Настройка клиентского приложения
Вам потребуется настроить свое клиентское приложение в областях службы Flow (настроить делегированные разрешения). Если приложение Azure Active Directory (AAD), используемое для интеграции мини-приложения, применяет поток авторизации "предоставление кода", необходимо предварительно настроить для него делегированные разрешения, поддерживаемые Power Automate. Делегированные разрешения дают приложению следующие возможности:
- Управление утверждениями
- Чтение утверждений
- Чтение действий
- Управление потоками
- Чтение потоков
Для выбора делегированных разрешений сделайте следующее:
- Перейти к https://portal.azure.com
- Выберите параметр Azure Active Directory.
- Выберите Регистрация приложений в разделе Управление.
- Укажите стороннее приложение для настройки в областях службы Flow.
- Выберите Параметры.
- Выберите Необходимые разрешения в разделе Доступ через API/
- Выберите Добавить.
- Щелкните Выбор API.
- Найдите и выберите Служба Power Automate. Примечание. Чтобы увидеть службу Power Automate, нужно, чтобы хотя бы один пользователь AAD в вашем клиенте вошел на портал Flow (https://flow.microsoft.com)
- Выберите нужные области Flow для приложения, а затем нажмите Сохранить.
Приложение получит маркер службы Flow, который содержит делегированные разрешения в утверждении 'scp' в маркере JWT.
Пример приложения с внедрением мини-приложений потоков
В разделе ресурсов доступен пример одностраничного приложения (SPA) JavaScript, позволяющий вам поэкспериментировать с внедрением мини-приложений потоков на ведущую страницу. Для использования этого примера необходимо зарегистрировать приложение AAD, включив для него поток неявного предоставления разрешения.
Регистрация приложения AAD
- Войдите на портал Azure.
- В левой области навигации выберите Azure Active Directory, а затем выберите Регистрация приложений (предварительная версия) > "Новая регистрация".
- На странице Регистрация приложения введите имя приложения.
- В разделе Поддерживаемые типы учетных записей выберите Учетные записи в любом каталоге организации.
- В разделе URL-адрес перенаправления выберите веб-платформу и задайте значение URL-адреса приложения' в зависимости от веб-сервера. Задайте значение http://localhost:30662/, чтобы запустить пример приложения.
- Выберите Зарегистрировать.
- На странице Обзор приложения зафиксируйте значение идентификатора приложения (клиента).
- Для примера необходимо включить поток неявного предоставления разрешения. В левой области навигации регистрируемого приложения выберите Аутентификация.
- Откройте Дополнительные параметры и в разделе Неявное предоставление установите флажки Токены идентификатора и Маркеры доступа. Токены идентификатора и маркеры доступа являются обязательными, так как в приложении будет выполняться вход пользователей и вызов API Flow.
- Нажмите кнопку Сохранить.
Запуск примера
- Скачайте пример и скопируйте его в локальную папку на вашем устройстве.
- В папке FlowSDKSample откройте файл index.html и в
applicationConfig
изменитеclientID
на идентификатор зарегистрированного ранее приложения. - Пример приложения настроен на использование областей Flow Flows.Read.All и Flow.Manage.All. Чтобы настроить дополнительные области, измените свойство flowScopes в объекте applicationConfig.
- Установите зависимости и запустите пример приложения, выполнив следующие команды:
> npm install > node server.js
- Откройте браузер и введите http://localhost:30662.
- Нажмите кнопку Войти, чтобы пройти в AAD аутентификацию и получить маркер доступа облачного потока.
- Маркер будет указан в текстовом поле Маркер доступа.
- Выберите Загрузить мини-приложение потоков или Загрузить мини-приложение шаблонов, чтобы внедрить соответствующие мини-приложения.
Ссылка для скачивания примера приложения.
Ресурсы
Страницы для тестирования мини-приложения
Узнайте больше об интеграции и параметрах мини-приложений.
- Мини-приложение шаблонов: <https://flow.microsoft.com/test/templateswidget/>
- Мини-приложение создания потока: <https://flow.microsoft.com/test/flowcreationwidget/>
- Мини-приложение среды выполнения: <https://flow.microsoft.com/test/runtimewidget/>
- Мини-приложение центра утверждений: <https://flow.microsoft.com/test/approvalcenterwidget/>
- Мини-приложение потоков: <https://flow.microsoft.com/test/managewidget/>
Языковые стандарты, поддерживаемые мини-приложением
Если инициализируемый языковой стандарт не указан в списке, Flow по умолчанию будет использовать ближайший поддерживаемый языковой стандарт.
Локаль | Language |
---|---|
bg-bg | Болгарский (Болгария) |
ca-es | Каталанский (Каталанский) |
cs-cz | Чешский (Чешская республика) |
da-dk | Датский (Дания) |
de-de | немецкий (Германия) |
el-gr | Греческий (Греция) |
en-Us | английский (США) |
es-es | Испанский (кастильский) |
et-ee | Эстонский (Эстония) |
eu-es | Баскский (Баскский) |
fi-fi | Финский (Финляндия) |
fr-fr | французский (Франция) |
gl-es | Галисийский (Галисия) |
hi-HU | Венгерский (Венгрия) |
hi-in | Хинди (Индия) |
hr-hr | Хорватский (Хорватия) |
id-Id | Индонезийский (Индонезия) |
it-It | итальянский (Италия) |
jp-Jp | Японский (Япония) |
kk-kz | Казахский (Казахстан) |
ko-kr | Корейский (Корея) |
lt-LT | Литовский (Литва) |
lv-lv | Латышский (Латвия) |
ms-my | малайский (Малайзия) |
nb-no | Норвежский (букмол) |
nl-nl | нидерландский (Нидерланды) |
pl-pl | Польская (Польша) |
pt-br | португальский (Бразилия) |
pt-pt | португальский (Португалия) |
ro-ro | румынский (Румыния) |
ru-ru | русский (Россия) |
sk-sk | Словацкий (Словакия) |
sl-si | Словенский (Словения) |
sr-cyrl-rs | Сербский (кириллица, Сербия) |
sr-latn-rs | Сербский (латиница, Сербия) |
sv-se | шведский (Швеция) |
th-th | Тайский (Таиланд) |
tr-tr | Турецкий (Турция) |
uk-ua | Украинский (Украина) |
vi-vn | Вьетнамский (Вьетнам) |
Использование SDK внедрения Power Automate описано в разделе Условия лицензии на программное обеспечение Майкрософт.
Note
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).