Согласно этой публикации, Webhook triggered groups on flags, определённые события не учитывают фильтр «Группы срабатывания». Я пытаюсь настроить веб-хук событий пользователя, чтобы получать уведомления всякий раз, когда пользователь из конкретной группы обновляет свой профиль. При попытке его использования я получаю следующую ошибку:
Я хочу ограничить это определёнными группами по следующим причинам:
Мой сервис автоматизации, Airtable, накладывает ограничения на количество вызовов, которые может выполнять автоматизация. Если этот веб-хук будет срабатывать для тысяч наших пользователей, это может потенциально превысить лимиты. Группы, на которые я ориентируюсь, включают лишь небольшую часть пользователей.
Я хочу быть уверен, что получаемые мной события исходят от групп, которые меня интересуют. Моя автоматизация заботится только об обновлениях профилей пользователей из конкретной группы. Если я не смогу фильтровать по группам, мне придётся добавлять логику в свою автоматизацию для отфильтровывания всего, что не относится к этой группе.
Возможно ли включить «Группы срабатывания» для события «Событие пользователя»?
Кажется, вам понадобится плагин, и если вы собираетесь это сделать, то, скорее всего, сможете создать плагин, который выполнит всё, что вы сейчас делаете с Airtable (если только Airtable не является конечной целью, а не средством).
Вы пробовали создать group_user_event и установить trigged_groups? Поскольку к пользователю не привязана группа, не ожидается, что группы будут влиять на User, но UserGroups — это именно то, о чём вы говорите. (Кажется.)
Я надеялся, что «Событие пользователя» можно будет отфильтровать по одной или нескольким группам, к которым принадлежит пользователь. В данном случае меня интересуют только события пользователей, состоящих в группе «Амбассадор».
Вы сказали, что уже пробовали это. Я предлагал попробовать что-то другое.
События пользователя для групп не существует.
Событие group_user, насколько я уверен, — это событие, когда пользователь добавляется в группу или удаляется из неё, что вас и интересует. Поэтому попробуйте создать событие group_user и триггер для группы, которая вас интересует.
На самом деле, мне нужно узнать, когда обновляется профиль пользователя, и меня интересуют только те пользователи, которые состоят в группе Ambassador. Я хочу получать уведомления о следующих трёх изменениях в профиле пользователя:
Изменение адреса электронной почты
Изменение имени пользователя
Добавление или изменение связанной учётной записи GitHub
Думаю, я могу получить эту информацию из события «User Event», но поскольку нельзя ограничить это событие конкретной группой, я могу получать гораздо больше уведомлений, чем мне нужно.
Ох, черт. Извините. Я, должно быть, прочитал слишком быстро. Или невнимательно.
Боюсь, вам понадобится плагин.
Вот один, который я написал давным-давно. Не могу гарантировать, что он работает или хорошо написан (сейчас я знаю о плагинах гораздо больше, чем тогда!), но он может послужить отправной точкой. Я бы начал с GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub, а затем добавил бы части для вебхука из plugin.rb и сериализатор.