API Discourse можно использовать для автоматизации отправки приглашений по электронной почте с вашего форума при выполнении действия во внешнем приложении. Для многих приложений вы можете настроить это с помощью Zapier, не написав ни строчки кода.
Распространённый сценарий использования — приглашение пользователей на ваш форум, когда они покупают товар или регистрируются во внешнем сервисе. В примере в этой теме я буду использовать интеграцию Zapier с WordPress для запуска отправки приглашения из Discourse, когда новый пользователь регистрируется на сайте WordPress.
Настройка шага триггера в Zapier
Перейдите в панель управления Zapier и найдите приложение, которое должно запускать отправку приглашения по электронной почте. На скриншотах ниже я выбрал WordPress в качестве триггера.
Единственное необходимое для этого конфигурирование — подключить Zap WordPress к аккаунту WordPress и выбрать событие «Новый пользователь» для запуска Zap.
Настройка шага действия для отправки приглашения
Нажмите кнопку «Добавить шаг» (Add a Step), затем выберите из выпадающего меню «Действие/Поиск» (Action/Search).
Введите «webhook» в меню поиска, затем выберите «Webhooks by Zapier» из меню действий. Шаг действия Webhook будет добавлен в боковую панель вашего Zap, и откроется форма, позволяющая выбрать тип запроса, который должен выполнять вебхук.
Выберите POST в форме и нажмите «Продолжить» (Continue).
Открывшаяся форма позволяет настроить POST-запрос, отправляемый в Discourse. В поле URL введите базовый URL вашего форума, за которым следует /invites. Например, базовый URL моего форума — https://demo.scossar.com, поэтому полный путь к маршруту приглашений — https://demo.scossar.com/invites.
Теперь необходимо настроить разделы Тип полезной нагрузки (Payload Type), Данные (Data) и Заголовки (Headers) формы. Все остальные разделы формы можно оставить со значениями по умолчанию.
Тип полезной нагрузки указывает Zapier, в каком формате отправлять полезную нагрузку. Он должен быть установлен в Json.
Раздел Данные используется для указания Discourse, на какой адрес электронной почты отправить приглашение, а также для настройки необязательного списка названий групп и пользовательского сообщения. Чтобы пригласить пользователя, не добавляя его в группы и не включая пользовательское сообщение, введите текст email в качестве ключа данных, затем нажмите значок «Вставить поле» (Insert a Field), чтобы открыть выпадающее меню поля. Прокрутите список вниз, пока не увидите значение, переданное из вашего приложения-триггера, содержащее адрес электронной почты пользователя. При использовании WordPress в качестве приложения-триггера раздел Данные должен выглядеть примерно так:
Чтобы автоматически добавлять пользователей в группы при принятии приглашения, нажмите значок
в разделе Данные, чтобы добавить новое поле. Установите ключ поля в group_names. Установите значение поля в список названий групп через запятую, в которые вы хотите добавить пользователей. Чтобы включить пользовательское сообщение в письмо-приглашение, создайте ещё одно поле с ключом custom_message и значением, равным сообщению, которое вы хотите отправить.
Примечание: добавив шаг кода после шага триггера вашего Zap, можно динамически устанавливать названия групп и пользовательское сообщение для конкретных пользователей.
Раздел Заголовки используется для аутентификации вашего запроса. Чтобы настроить поле Заголовки, вам нужно сгенерировать API-ключ на вашем сайте Discourse. Для этого перейдите на страницу Администрирование / API вашего сайта Discourse и нажмите кнопку «Новый API-ключ» (New API Key). При создании ключа назначьте его пользователю-сотруднику и установите область действия в Глобальная (Global) или используйте область действия Селективная (Granular) с отмеченным флажком Приглашения > Создать (Invites > Create).
Теперь в разделе Заголовки Zap введите следующие пары ключ/значение. Замените любые значения, которые я указал в скобках, на значения, подходящие для вашего сайта. Регистр букв в именах ключей важен.
Api-Username: <имя пользователя-сотрудника, от которого вы хотите отправлять приглашения>
Api-Key: <сгенерированный вами API-ключ>
Content-Type: application/json
Форма теперь должна выглядеть примерно как на скриншоте ниже, но с вашим Api-Username и Api-Key:
Нажмите кнопку «Продолжить» (Continue).
Теперь вы сможете протестировать интеграцию, нажав кнопку «Отправить тест в Webhooks by Zapier» (Send Test To Webhooks by Zapier). Тест будет выполнен с данными, которые вы настроили в шаге триггера. Если всё настроено правильно и пользователь, которого вы настроили в шаге триггера, ещё не существует на вашем форуме Discourse, будет отправлено письмо-приглашение, и вы увидите сообщение об успехе в Zapier. Как только тестовый шаг будет пройден, нажмите кнопку «Готово» (Finish) и включите ваш Zap.
Подробности о том, как выполнять другие типы запросов к API Discourse с помощью Zapier, см. на странице Make requests to the Discourse API with Zapier.











