我试图在我的项目中显示用户的堆栈溢出声誉。我有用户邮箱。所以用用户的电子邮件作为输入,我可以得到用户的Stack Overflow声誉吗?
现在我尝试使用Javascript SDK。使用的堆栈溢出认证方法。在这种情况下,用户必须登录到Stack Overflow,然后我得到用户的Stack Overflow id和声誉。
- 我可以得到Stack Overflow信誉的用户传递他的电子邮件id没有身份验证?
- 每次当他的声誉在Stack Overflow中发生变化时,是否有任何选项可以让我在我的网站中自动更新他的Stack Overflow声誉值?
出于隐私原因,电子邮件地址在堆栈交换api中不可用。它们在数据资源管理器或数据堆中都不可用。据我所知,您无法根据电子邮件地址查询数据库。
通过身份验证,您可以根据用户的id或使用/me功能找到用户。
关于声望的更新,我认为您可以使用cron作业每天更新声望。
根据您想要如何表示声誉,您还可以考虑使用Stack Exchange本身提供的Flair选项。Flairs是一些小图片,描绘了用户的概要,并显示了他/她的声誉。这些图片由SE每24-36小时更新一次,可通过以下网址访问:https://stackoverflow.com/users/flair/user_id_here.png
你可以通过stack overflow api获取用户的信誉:
https://stackoverflow.com/users/flair/<user_id>.json
,它返回一个json字符串(以我自己为例)
{
"id":7360676,
"gravatarHtml":{},
"badgeHtml":"<span title="3 silver badges" aria-hidden="true"><span class="badge2">●</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">●</span><span class="badgecount">14</span></span><span class="v-visible-sr">14 bronze badges</span>",
"reputation":"341",
"displayName":"Justin Lee",
"profileUrl":"https://stackoverflow.com/users/7360676/justin-lee"
}
简单地从这个api的返回中读取reputation
字段,您将获得用户的堆栈溢出声誉