Существует ли эндпоинт, который возвращает внешние ID аккаунтов пользователя по его ID в Discourse?

Продолжение обсуждения из темы Как получить external_id пользователя для связанных аккаунтов?:

Я заметил, что этот вопрос уже задавался здесь, но, похоже, он не получил широкого отклика, так как был размещён только в категории для разработчиков. Интересно, существует ли что-то подобное или это вообще возможно, даже если это не задокументировано. Мне действительно нужен способ получения всех связанных аккаунтов, и в идеале я бы не хотел хранить эту информацию в отдельной базе данных и синхронизировать её (например, когда пользователь удаляет свою социальную учётную запись).

Вы можете увидеть эту информацию в панели администратора. Я думаю, вы можете изучить, как реверс-инженерить API Discourse.

Да, есть секция associated_accounts, но проблема в том, что она не показывает внешний ID, который необходим для использования с Discourse API Docs.

Например, мне нужно получить Discord ID пользователя или Steam ID 64, которые недоступны через этот endpoint.

Какую проблему вы пытаетесь решить? Что вы планируете делать с информацией о внешних аккаунтах?

Не знаю, существует ли API, предоставляющий доступ к этим данным. Мне пришлось бы изучить исходный код. Возможно, кто-то другой знает.

Вам, возможно, понадобится плагин, решающий вашу задачу. Может быть, просто добавьте эту информацию в сериализатор пользователей для администраторов.

Да, в общем-то я использовал SSO Discourse на внешнем сайте и хотел проверить, привязал ли пользователь свои учётные записи. Если они привязаны, мне требовались их ID для выполнения определённых действий. Мне очень не хотелось заставлять их входить на внешний сайт через Discord OAuth или Steam OpenID, так как это казалось избыточным и могло привести к рассинхронизации некоторых данных с Discourse.

Что ж, я всё ещё не до конца понимаю, но, думаю, вам понадобится плагин.

О, можно создать собственный API-эндпоинт с помощью плагина? Мне придётся в этом разобраться. Спасибо!

Вы можете создать собственный конечный пункт с этой информацией, используя Как выполнять запросы Data Explorer с помощью API Discourse

Ого! Круто. Я знал, что можно создавать пользовательские запросы и вызывать их через API, но не догадывался, что это endpoint. Потрясающе.

Спасибо вам обоим за всю помощь! Похоже, что Data Explorer — это именно то, что мне нужно. Я прямо сейчас попробую его.

Редактирование: Да, вау — это такой мощный плагин. Спасибо!