使用此功能,可以从Stack Overflow的特定用户获取徽章:
library(stackr)
badges <- stack_users(9371451, "badges", num_pages=100000, pagesize=100)
如何添加参数以获取徽章授予用户的时间戳?如果可能的话,回答哪个?
答案 0 :(得分:1)
使用Stack Exchange API可能是 ish ,但不是你正在使用的the stackr library。
/users/{ids}/badges
route会返回badge objects的列表,其中只包含可能的属性:
award_count integer badge_id integer, refers to a badge badge_type one of named, or tag_based description string link string name string rank one of gold, silver, or bronze user shallow_user
因此,您无法获得时间戳或触发帖子。
但是,您可以从the /notifications
route获取此信息(主要是),这可以返回如下结果:
{ "items": [ {
"site": {"site_url": "https://webmasters.stackexchange.com"},
"is_unread": false,
"creation_date": 1520234766,
"notification_type": "badge_earned",
"body": `You've earned the \"Notable Question\" badge for
<a href=\"http://webmasters.stackexchange.com/questions/65822\">
How to bulk delete email accounts from cPanel / my hosting account?</a>.`
// Manually wrapped for this post
},
etc.
但是,重要:
/notifications
需要身份验证,仅适用于已登录(通过API)的用户。rank
等徽章详细信息,因此您仍然需要致电/users/{ids}/badges
并将结果结合。 答案 1 :(得分:1)
您可以使用users/{ids}/timeline
。见description page:
返回{ids}中的用户在网站上执行的操作的子集。
此方法按照完成的顺序返回用户的帖子,编辑和获得的徽章。
library(stackr)
df_timeline <- stackr:::stack_GET("users/9371451/timeline", num_pages = 10000)
:::
是必需的,因为函数stack_GET
是一个内部命令