小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
WangScaler: 一个用心创作的作者。
声明:才疏学浅,如有错误,恳请指正。
活动来我的楼踩踩开奖了,开奖地址。我们中了摩天大楼奖,
为了活动公平抽奖,特发此贴,如果你认为抽奖过程存在不公平行为,请评论此文,提出公平方案。
分析
我们想获取盖楼用户的数据,就要从掘金的接口获取,首先我们找到了这个接口https://api.juejin.cn/interact_api/v1/comment/list?aid=2608&uuid=6950557314831795745
我们发现需要传递的参数如下
1 | json复制代码{ |
通过分析发现cursor就是页数,而limit就是当前页查询的条数,经过测试limit最大支持的条数是50。通过响应的数据
可以看到共有274条,也就是我们得多次请求才能获取全部的数据。通过has_more可以判断是否获取完全部的数据。
获取全部数据
通过上述分析代码如下:
1 | java复制代码String url = "https://api.juejin.cn/interact_api/v1/comment/list?aid=2608&uuid=6950557314831795745"; |
因为redis的set集合的成员是唯一的,所以可以排除同一个用户的多条评论。通过打印System.out.println("当前cursor:" + map.get("cursor"));
可以判断请求的次数,和每次请求的参数,是否符合我们的预期要求。
用户数据
最后redis获取到的用户数据共262条。我们将这些用户id参与抽奖。
抽奖
采取的现成的在线抽奖软件,这个抽奖地址,大家常用,能保证抽奖结果的可靠性。
原有抽奖人数262,抽奖三次,最后剩余抽奖人数262-3=259。
获取中奖人的昵称
1 | java复制代码if (userInfo.getString("user_id").equals("4441682709316647") || userInfo.getString("user_id").equals("2277843826120318") || userInfo.getString("user_id").equals("3403743732709197")) { |
最后
恭喜上述三位好友。
因本周三晚上需要提交问卷,此文公布至周三中午十二点之前,没有疑问就是上述三位好友分别获得官方的徽章。如有疑问,可重新抽奖。
来都来了,点个赞再走呗!
关注WangScaler,祝你升职、加薪、不提桶!
本文转载自: 掘金