Кто-нибудь знает, как получить “external_id” пользователя через API? Я добавил external_id при входе через SSO, но теперь при запросе пользователей я не вижу “external_id” в хеше пользователя, возвращаемом API. Я пытаюсь использовать external_id для идентификации пользователей из моей базы данных при обработке вебхука.
Да, это можно сделать, отправив аутентифицированный GET-запрос по адресу https://discourse.example.com/u/by-external/{external_id}.json
Этот маршрут задокументирован здесь: Discourse API Docs.
Чтобы получить обратное (то есть получить external_id по user_id), вы можете:
-
Использовать Discourse Ruby API и вызвать метод: user_sso(user_id)
-
Отправить аутентифицированный GET-запрос по адресу:
https://discourse.example.com/admin/users/{id}.json
и найти ключ хэша [“single_sign_on_record”][“external_id”]
Обратите внимание, что single_sign_on_record (и external_id) НЕ возвращается при вызове:
https://discourse.example.com/users/{username}.json