MS Power Automate и Discourse

Извините за сырую идею, но я пытаюсь найти способ упростить администрирование групп на разных платформах.

Мы проводим много встреч, о которых сообщаем нашему сообществу через пост в Discourse. В посте Discourse обычно содержится много стандартного текста о месте, времени и порядке проведения, а также обычно включается .ics-файл, чтобы люди могли добавить встречу в свой календарь.

В настоящее время это делается вручную после добавления на другие платформы (например, на наш внутренний сервер Exchange, в календарь сообщества и т. д.). Я пытаюсь понять, можно ли автоматизировать большую часть этой работы, и только что начал изучать MS Power Automate.

Интересует, есть ли способ интегрировать Discourse в рабочий процесс Power Automate, чтобы посты создавались как часть большого набора действий по планированию встреч.

Любые мысли будут очень полезны.

Я бы начал с изучения плагина Events :calendar:.

Спасибо, но это не то, что я ищу.

Мы работаем с @angus, и он создаёт замечательные инструменты, но я ищу способ автоматизировать рабочие процессы между системами, которые интегрируются с Discourse, а не использовать Discourse как основную систему управления событиями.

Извините, если это было неясно.

С точки зрения Discourse это, безусловно, достижимо, но я ничего не знаю о Power Automate. API Discourse можно использовать для создания постов, и самый простой способ применения API для такой задачи — сделать веб-запрос.

Если Power Automate позволяет автоматизировать (извините :slight_smile:) формирование содержимого поста на основе информации о созданном вами событии, а также отправлять POST-запрос с произвольными заголовками и телом, то вы сможете создавать темы с его помощью.

Документация API Discourse: Создание новой темы, нового поста или личного сообщения

Добавление файла ics в тему немного сложнее, но тоже возможно. Думаю, вам сначала нужно будет создать загрузку, получить её short_path из ответа, а затем включить в сформированное содержимое поста разметку Markdown вида ![Event_title.ics](short_path).

Это может быть не совсем точно, но общая идея именно такова: использовать ответ от создания загрузки, чтобы добавить её в пост в том же формате, в котором оформлены ваши существующие загрузки ics.

Документация API Discourse: Создание загрузки

Ключ API можно создать, посетив /admin/api/keys на вашем экземпляре. Для него потребуется точечный доступ с включёнными правами topics:write и uploads:create, и, вероятно, вы захотите выбрать одного пользователя, от имени которого будет создаваться тема.

Примечание: Права uploads:create пока не существуют, но они находятся в процессе добавления. Обсуждение этого вопроса и отслеживание прогресса можно найти в следующей теме и связанном pull request: