Получение адреса электронной почты пользователя через API

Есть ли способ получить текущий адрес электронной почты пользователя через API?

Наш сценарий использования следующий:

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

Я могу это сделать для всех остальных полей, кроме адреса электронной почты.

Раньше существовал конечный пункт API users/{username}/emails, но, похоже, он больше недоступен.

Привет,

GET /users/:username.json

отобразит адрес электронной почты в двух случаях:

  • идентификатор пользователя владельца API-ключа совпадает с идентификатором пользователя, соответствующим запрошенному имени пользователя;
  • владелец API-ключа является сотрудником, а запрошенный пользователь находится в стадии подготовки.

Подробнее об этом в коде:

Насколько мне известно, этот путь выполнения кода недавно не менялся.

Да, но это мне не помогает. Все пользователи уже активны, и ключ API пользователя не совпадёт.

Этот запрос работает у меня:

curl "http://example.com/users/joffreyjaffeux/emails.json" \
     -H 'Api-Username: joffreyjaffeux' \
     -H 'Api-Key: xxx' \
     -H 'Content-Type: application/json; charset=utf-8' \

Но работает ли это, если URL — http://example.com/users/paulapostolos/emails.json?

Да, это должно работать для вас и других пользователей, при условии, что выполняется следующее:

  def can_check_emails?(user)
    is_admin? || (is_staff? && SiteSetting.moderators_view_emails)
  end

Обратите внимание, что это действие вызовет запись в журнале действий сотрудников.

Сработало… У меня был старый код, который раньше работал (версия около 1.4), где запрос был PUT, а в конце URL не было .json. Я изменил его на GET, обновил URL, и теперь всё работает.

Спасибо за помощь!