如何获得特定用户的 Stack Overflow 声誉?

How to get the Stack Overflow reputation of a specific user?

我正在尝试显示我项目中用户的 Stack Overflow 信誉。我有用户电子邮件。那么使用用户电子邮件作为输入我可以获得用户的 Stack Overflow 声誉吗?

现在我尝试使用 Javascript SDK。使用 Stack Overflow 的身份验证方法。在这种情况下,用户必须登录到 Stack Overflow,然后我得到用户的 Stack Overflow id 和信誉。

  1. 我可以获取用户在未经身份验证的情况下传递其电子邮件 ID 的 Stack Overflow 信誉吗?
  2. 每当他在 Stack Overflow 中的声誉发生变化时,我是否可以选择在我的站点中自动更新他的 Stack Overflow 声誉值?

出于隐私原因,电子邮件地址在堆栈交换中不可用-api。它们在 data explorer or the datadumps 中都不可用。 据我所知,您将无法根据电子邮件地址查询数据库。

通过身份验证,您可以根据用户 ID 或使用 /me 功能找到用户。

关于声誉的更新,我相信你可以使用每天更新声誉的 cron 作业。

根据您希望如何表示声誉,您还可以考虑使用 Stack Exchange 本身提供的 Flair 选项。 Flairs 是描述用户摘要并显示 his/her 声誉的小图像。这些天赋由 SE 每 24-36 小时更新一次,可以通过 url 访问:https://whosebug.com/users/flair/user_id_here.png

您可以通过堆栈溢出获取用户的声誉api:

https://whosebug.com/users/flair/<user_id>.json

它return是一个json字符串(以我自己为例)

{
  "id":7360676,
  "gravatarHtml":{},
  "badgeHtml":"<span title=\"3 silver badges\" aria-hidden=\"true\"><span class=\"badge2\">&#9679;</span><span class=\"badgecount\">3</span></span><span class=\"v-visible-sr\">3 silver badges</span><span title=\"14 bronze badges\" aria-hidden=\"true\"><span class=\"badge3\">&#9679;</span><span class=\"badgecount\">14</span></span><span class=\"v-visible-sr\">14 bronze badges</span>",
  "reputation":"341",
  "displayName":"Justin Lee",
  "profileUrl":"https://whosebug.com/users/7360676/justin-lee"
}

只需读取此api的return中的reputation字段,您将获得用户的堆栈溢出声誉