Как подключить Discourse к сотням приложений с помощью Make

Теперь вы можете интегрировать Discourse с помощью Make. Make — это платформа интеграции без кода, где вы можете легко подключить практически любое приложение или API к Discourse. Приложение Discourse в Make включает ряд модулей (действия, триггеры и поиск), которые позволяют автоматизировать коммуникацию в Discourse и автоматически синхронизировать данные.

Что такое integromat@2x

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

Make позволяет создавать любые интеграции, которые вы только можете представить. С помощью визуального конструктора вы можете перетаскивать столько приложений или шагов, сколько необходимо, чтобы смоделировать реальный рабочий процесс. В настоящее время доступно более 700 приложений, а также различные универсальные приложения, которые позволяют подключаться к любому API через HTTP/JSON.

Посмотрите полный список доступных модулей Discourse и готовых шаблонов интеграции или нажмите на скриншоты ниже, чтобы увидеть сценарий:

Эти заранее созданные шаблоны значительно упрощают создание сценариев. Мастер Make проведет вас по шагам процесса создания. Конечно, вы всегда можете расширить и настроить сценарий под свои индивидуальные потребности или создать свой собственный.

Чтобы начать, вам нужно зарегистрироваться в аккаунте Make, а затем установить соединение с вашим аккаунтом Discourse. После регистрации и входа в систему следуйте этому пошаговому руководству.

Чтобы начать создание сценария (сценарии в терминологии Make означают интеграции), откройте визуальный конструктор сценариев. Начните с выбора действия Discourse, которое вы хотите использовать, после чего вам будет предложено создать соединение. Для подключения вашего аккаунта Discourse к Make вам нужно получить API-ключ и ввести его в диалоговом окне «Создать соединение» в Make.

Возможности

  • Получение деталей сообщения при создании нового сообщения

  • Получение списка последних сообщений по всем темам

  • Получение деталей сообщения

  • Обновление существующего сообщения

  • Удаление существующего сообщения

  • Получение деталей темы при создании новой темы

  • Получение списка тем

  • Получение деталей темы

  • Обновление заголовка и/или категории существующей темы

  • Удаление существующей темы

  • Получение деталей сообщения при получении нового личного сообщения

  • Получение личных сообщений в вашем аккаунте

  • Создание сообщения, темы или личного сообщения

  • Выполнение пользовательского API-запроса

:arrow_right: Установка: Следуйте руководству по установке плагина, чтобы подключить Discourse к Make

Настройка

1. Войдите в свой аккаунт Discourse.

2. Откройте меню в правом верхнем углу.

3. Перейдите в раздел Администратор > API.

01

4. Нажмите кнопку «Создать новый API-ключ».

5. Настройте API-ключ следующим образом:

  • Описание: Введите имя для API-ключа.

  • Уровень пользователя: Выберите опцию Один пользователь, чтобы ограничить доступ через API пользователем, указанным в поле Пользователь ниже.

  • Пользователь: Выберите пользователя, которому вы хотите предоставить доступ к API вашего аккаунта Discourse. Имена пользователей, доступные для выбора, будут отображаться по мере ввода.

  • Глобальный ключ (разрешает все действия): Включите эту опцию, чтобы разрешить все действия. В противном случае определите конкретные области, которые вы хотите включить для доступа к API.

6. Нажмите кнопку Сохранить и скопируйте предоставленный API-ключ.

7. Перейдите в Make и откройте диалоговое окно Создать соединение модуля Discourse. Заполните следующие поля:

  • Имя соединения: Введите имя для соединения с вашим аккаунтом Discourse.

  • URL хоста: Выберите URL вашего доменного имени Discourse (включая HTTPS), например, https://<вашаКомпания>.discourse.group

  • API-ключ: Введите API-ключ, который вы скопировали на шаге 6 выше.

  • Имя пользователя API: Введите имя пользователя, назначенного для API-ключа.

8. Нажмите кнопку «Продолжить», чтобы установить соединение.

Теперь вы можете продолжить настройку модуля и подключение остальных приложений аналогичным образом. Если вам нужна помощь в настройке интеграций, вы можете обратиться в службу поддержки Make, создав заявку.

16 лайков

Отличный пост! Integromat — это потрясающе :heart:

2 лайка

Не случайно ли это Михаэла Стафова — специалист по решениям общего профиля в Integromat?

5 лайков

Это верно :slightly_smiling_face: И я очень рад работать в Integromat, одновременно находя это замечательным :pray:

4 лайка

Это моя любимая платформа автоматизации :clap: Я уже давно использую её с API Discourse — думаю, теперь я смогу перенести некоторые из своих модулей :slight_smile:

8 лайков

Спасибо за постоянные положительные отзывы, @bartv! Мы также увидели ваш недавний пост о нас :slightly_smiling_face:

3 лайка

Действительно выгодное ценовое предложение по сравнению с Zapier. Также значительно более щедрый бесплатный тариф. Я планирую поэкспериментировать с этим инструментом, чтобы протестировать возможный функционал для моего сообщества. Мне бы хотелось связать коммуникацию в Discourse и группе Telegram.

2 лайка

Конечно, @Bill, у нас также есть Telegram, вы можете посмотреть его здесь. Если вам нужна помощь в настройке ваших сценариев, пожалуйста, обратитесь в группу поддержки Integromat :slight_smile:

1 лайк

Вот один из моих любимых сценариев, который я написал для еженедельной подборки лучших работ на Blender Artists, которую я публикую на своём другом сайте BlenderNation. Я создаю Google-таблицу с ссылками на посты, которые хочу выделить. Сценарий загружает каждую тему, извлекает миниатюру, загружает её в WordPress и формирует целую статью. Мне остаётся только нажать «Опубликовать». То, что раньше занимало у меня как минимум час, теперь сократилось до пяти минут работы. (Сценарий, который я опубликовал выше, — это второй шаг в этом процессе: он использует ту же таблицу, поздравляет всех участников, выдаёт им значки и так далее).

13 лайков

Вау, @bartv, это невероятно впечатляет, спасибо, что поделились! Всегда приятно наткнуться на продвинутого пользователя :slightly_smiling_face:. Продолжайте в том же духе и спасибо, что автоматизируете вместе с нами :pray:

3 лайка

Я открыл запрос на добавление поддержки тегов Discourse:
https://www.integromat.com/en/requests/requests-to-update-existing-apps/p/discourse-add-tag-support

Я не смог найти ничего, связанного с тегами, в доступных полях Integromat. Думаю, это было бы очень полезно иметь в наличии.

В моём конкретном случае я хочу иметь возможность устанавливать тег на тему в Discourse и использовать это как триггер в Integromat, чтобы затем перенести содержимое этой темы в ClickUp. Более конкретно, я буду использовать это для пометки определённых тем форума для отслеживания разработки в ClickUp (например, новая функция, ошибка и т. д.).

Не все темы форума должны попадать в ClickUp, и мы хотим иметь возможность использовать категории для различения, например, ошибок и новых функций (или других вещей). Текущим обходным решением может быть перемещение темы в специальную категорию «ClickUp» и использование существующей поддержки данных в Integromat для обработки этого, но было бы гораздо лучше и менее навязчиво использовать теги.

Спасибо за отличную поддержку Integromat!

Привет, @oshyan! Надеюсь, у тебя всё хорошо, и спасибо за использование нашей автоматизации!

К сожалению, в настоящее время нет элегантного способа сделать то, что ты хочешь. Это связано в основном с ограничениями API Discourse. Основная проблема заключается в том, что нет простого способа отслеживать недавнее присвоение тегов.

Решение есть, но, как уже упоминалось, оно не очень элегантное.

  1. Получить список всех тегов через модуль «Выполнить API-запрос» (узнай, как выполнять API-запросы с помощью Integromat здесь).
  2. Получить детали для каждого тега = получить список назначенных тем через модуль «Выполнить API-запрос».
  3. Сохранить текущее состояние в базу данных (это может быть хранилище данных в Integromat).
  4. Сравнить текущее состояние с предыдущим.
  5. Найти темы с новыми тегами.
  6. Выполнить желаемое действие в ClickUp.

К сожалению, такой сценарий потребует довольно много операций. Мы понимаем, что это не очень удобно, но Integromat может работать только с тем, что позволяет конкретный API.

Надеемся, это проясняет ситуацию :slightly_smiling_face:

Если у тебя есть вопросы, не стесняйся спрашивать — мы обязательно предоставим больше информации.

Хорошего дня!

1 лайк

Вау, спасибо, это очень полезно и информативно! Похоже, мне нужно запросить обновления API у команды Discourse.

Если предположить, что API будет обновлено для поддержки запроса новых тегов у тем, то, я полагаю, в этот момент не составит труда добавить поддержку тегов в Integromat?

Разве это не могло бы работать с вебхуком по теме? Например, когда тема в Discourse обновляется и у неё есть тег, убедиться, что она добавлена в ClickUp.

1 лайк

Интересно. Я не совсем понимаю, как именно это работает или как это настроить. Если бы это работало так, чтобы срабатывать при добавлении нового тега к уже созданной теме и выполнять действие «добавить в ClickUp» только для определённого тега (или нескольких тегов), то это хотя бы частично решило бы мою задачу.

Тем не менее, мне всё ещё кажется, что API нуждается в улучшенной поддержке тегов.

Мне понадобилось нечто подобное: я хотел получить ленту тем с конкретным тегом, отсортированную по дате добавления тега. В итоге я обошел это ограничение, настроив запрос в Data Explorer, а затем вызывая отчет из внешнего скрипта. Буду рад поделиться деталями, если это вам поможет.

3 лайка

Спасибо! Думаю, это даст мне направление, если решение на базе Integromat не получится. Дам знать, если детали будут полезны. Еще раз спасибо. :slight_smile:

1 лайк

@oshyan @bartv @JonathanShaw

:raised_hand_with_fingers_splayed: Привет, ребята!

После дополнительного расследования мы можем подтвердить, что решение через наш универсальный модуль вебхуков может быть жизнеспособным вариантом.

Если вы сможете настроить вебхуки в вашем аккаунте Discourse и использовать универсальный URL вебхука Integromat в качестве слушателя, то вы сможете отслеживать события «topic», которые содержат информацию о тегах в полезной нагрузке.

Начало сценария может выглядеть так:

Как вы знаете, у темы может быть несколько тегов, поэтому перед выполнением каких-либо действий необходимо перебрать все теги. Наш пример сценария заканчивается модулем «Iterator», но вам потребуется добавить дополнительные модули для выполнения желаемых действий (например, в упомянутом выше приложении ClickUp).

Также вы можете обратить внимание на более важные части сценария на следующих скриншотах:



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

Надеемся, это окажется вам полезным!
Дайте знать, если потребуется дополнительная помощь :robot:

1 лайк

Вау, это действительно отличная поддержка! Ещё раз спасибо. Значит, это избавляет от необходимости использовать хранилище данных и процесс сравнения?

Рад помочь, @oshyan :slightly_smiling_face:

Отвечая на ваш вопрос - - →

Да, в данном конкретном случае вам, скорее всего, не нужно беспокоиться о хранилище данных (уверен на 90%), и вот почему:

  1. Мы исходим из того, что как только тег присвоен теме, он редко удаляется. Добавляются только новые теги.
  2. Любое изменение темы генерирует новый пинг с текущим набором тегов, присвоенных теме — поэтому, как только ваши «мониторимые» теги появятся в теме, сценарий, генерирующий действия в ClickUp, будет немедленно запущен.

Тем не менее, могут быть причины использовать хранилище данных, если вы хотите сделать сценарий максимально надежным (и, честно говоря, довольно сложным):

  1. Например, теме присвоен тег, затем тег удален, а позже тот же самый тег добавлен снова => это снова запустит ваш сценарий для выполнения уже выполненного ранее действия. В этом случае вы можете захотеть хранить информацию о том, что уже было отправлено в ClickUp, а что нет, и не продолжать, если элемент уже был отправлен в ClickUp… С другой стороны, вы можете просто «Получить список всех задач» перед отправкой в ClickUp и отправлять в ClickUp только если задачи там еще нет, не беспокоясь о хранилище данных. Это действительно зависит от вашей бизнес-логики.
  2. Хранилище данных может служить просто хорошим журналом обработанных элементов, если вам когда-нибудь понадобится посмотреть, что произошло в дату XYZ. С другой стороны, вы можете просто сохранять журнал в Google Таблицы… И, как уже упоминалось, это зависит от вашей бизнес-логики.

Дайте знать, если нужны дополнительные разъяснения.

1 лайк