是否可以通过 API 获取用户的当前电子邮件地址?
我们的使用场景如下:
我们允许用户通过我们的网站管理他们的 Discourse 信息。通常情况下,Discourse 仅用作邮件列表,几乎所有用户都不会访问实际的 Discourse 站点。我希望能够向用户显示 Discourse 当前使用的电子邮件地址,以便他们查看是否需要更改。
除电子邮件外,我能够获取所有其他字段的信息。
过去存在一个 API 端点 users/{username}/emails,但该端点似乎已不再可用。
是否可以通过 API 获取用户的当前电子邮件地址?
我们的使用场景如下:
我们允许用户通过我们的网站管理他们的 Discourse 信息。通常情况下,Discourse 仅用作邮件列表,几乎所有用户都不会访问实际的 Discourse 站点。我希望能够向用户显示 Discourse 当前使用的电子邮件地址,以便他们查看是否需要更改。
除电子邮件外,我能够获取所有其他字段的信息。
过去存在一个 API 端点 users/{username}/emails,但该端点似乎已不再可用。
你好,
GET /users/:username.json
在以下两种情况下会显示邮箱地址:
在代码中了解更多详情:
据我所知,该代码路径近期未发生变更。
是的,但这帮不了我。所有用户都已经活跃,用户 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,现在可以正常工作了。
感谢您的帮助!