Как создать персонализированное электронное письмо или сообщение после решения проблемы

Привет @ianm!

Готового решения для этого нет. Потребуется плагин или пользовательский скрипт.

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

Шаги следующие:

  1. Создайте webhook в /admin/api/web_hooks/.

  2. Создайте скрипт, который будет получать webhook. Пример на PHP можно найти здесь: Use Discourse webhooks with PHP
    Вам нужно убедиться, что заголовок X-Discourse-Event установлен в accepted_solution.

  3. Полезная нагрузка webhook содержит информацию, которую можно использовать для сообщения, которое вы хотите отправить:
    name и username: автор поста, отмеченного как решение
    cooked: HTML-содержимое поста, отмеченного как решение
    topic_id: ID темы :upside_down_face:

  4. Затем вы можете получить данные из /t/[topic_id].json[1].
    Есть несколько способов получить автора темы:

    • [post_stream][posts][0] содержит данные автора: [id], [name], [username] и т. д.

    • [details][created_by] также содержит эту информацию.

  5. Отправьте POST-запрос к /posts.json с правильным полезным грузом для отправки ЛС автору темы.
    Более подробная информация о POST-запросе к постам: Discourse API Docs

Видео-демонстрация концепции:


  1. Эндпоинт /t/[topic_id].json также содержит данные, связанные с решением, в поле [accepted_answer] ↩︎