Я вижу, что вебхуки теперь поддерживают уведомления, что просто замечательно. Это именно то, что нам нужно. Однако в полезной нагрузке отсутствует один критически важный элемент — пользователь, для которого предназначено уведомление. В этом примере полезной нагрузки мы видим автора поста, вызвавшего уведомление, но не пользователя, который должен его получить.
{
"notification": {
"id": 119,
"notification_type": 9,
"read": false,
"created_at": "2019-09-18T13:42:21.248Z",
"post_number": 1,
"topic_id": 75,
"fancy_title": "Phallguy должен получить уведомление об этом",
"slug": "phallguy-should-get-a-notice-about-this",
"data": {
"topic_title": "Phallguy должен получить уведомление об этом",
"original_post_id": 111,
"original_post_type": 1,
"original_username": "Paul_Alexander",
"revision_number": null,
"display_username": "Paul_Alexander"
}
}
}
Я искал, есть ли API для получения целевого пользователя по идентификатору уведомления, но не нашёл ничего документированного. Есть ли способ получить целевое имя пользователя или его идентификатор в полезной нагрузке уведомления?
Для контекста: мы пытаемся объединить уведомления из нескольких систем в единый опыт для наших пользователей.
@Falco или @blake, у вас есть какие-то мысли о том, как я могу определить, для какого пользователя предназначено уведомление, полученное через новый вебхук уведомлений?
Я быстро посмотрел на это, чтобы узнать, есть ли быстрый ответ, и вы правы: похоже, у нас нет get-конечной точки API для получения отдельного уведомления по ID, но в любом случае вызывать это каждый раз было бы неэффективно.
Скорее всего, потребуется изменение кода в сериализаторе уведомлений, чтобы включить user_id/username в полезную нагрузку уведомления, чтобы не требовалось отдельного API-запроса.
В данный момент мы используем размещённый сервис, иначе я бы создал свой собственный плагин. Не могли бы вы добавить идентификатор пользователя или имя пользователя в полезную нагрузку уведомления в вебхуке?
Привет @blake, возможно ли также добавить внешний идентификатор пользователя (external_id)? Мы работаем с SSO Discourse, и у нас в системе нет идентификаторов пользователей Discourse.