WPS自动邀请说明
一、基本说明
本项目不是全自动
,需要用户每日13点前在微信WPS会员公众号完成在线签到。再完成签到后即可输入自己uid完成自动拉满10人的任务。本项目仅用于学习,不用于商业。
二、具体步骤
-
添加微信公众号
WPS会员
→福利&签到
→打卡免费领会员
→签到
-
进入个人中心记录下自己的
uid
-
fork本项目到自己库中,在自己服务器上部署,或是参考源码写到自己的JAVA项目中
-
如果真有懒人的话参考本人网站自动邀请页面WPS邀请demo
-
可在
WPS会员
→福利&签到
→打卡免费领会员
→任务
下查看到邀请数
三、配置项目步骤
- 将本项目fork到自己库中并下载到本地
- 数据库文件在sql包中,部署到本地数据库,我的项目使用的mysql8.0
- 使用编辑器打开项目,配置yml文件,主要是配置数据库
- 因为是springboot易于部署,以上步骤都完成好之后启动该项目,输入测试uid
四、源码讲解
1.功能实现
那么简单的白嫖功能如何实现呢,首先你需要每个用户唯一的sid
(关于sid
自行搜索)。
这里先说一下我的配置:
- 1.阿里云服务器
- 2.Java(JDK1.8.0_131)
- 3.MySQL 8.0
- 4.springboot 2.2.1
主要的东西就是这些了,剩下的就基于springboot使用maven添加的一些必要依赖了。
2.源码实现
@Override
public ResultSet wpsAutoInvite(String uid) {
//定义的返回类,可以不用管
ResultSet resultSet = new ResultSet();
try {
//数据库进行sid获取
List<Wps> list = wpsMapper.getWpsSidAll();
ObjectMapper mapper = new ObjectMapper();
Map<String, String> map = new HashMap<>();
map.put("invite_userid", uid);
//转成json格式
String mapToJson = mapper.writeValueAsString(map);
StringBuilder sb = new StringBuilder();
//WPS_INVITE_PATH是目标路径,我在yml中配置了,在这需要在上面加入@Value注解
URL urlObj = new URL(WPS_INVITE_PATH);
//循环多次由多个sid进行邀请
for (Wps wps : list) {
System.out.println("当前sid为:" + wps);
HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();
//post请求不能使用缓存
conn.setUseCaches(false);
//设置是否向httpUrlConnection输出,post请求,参数要放在http正文内,因此设为true, 默认情况下是false;
conn.setDoOutput(true);
//设置是否从httpUrlConnection读入,默认情况下是true;
conn.setDoInput(true);
//设定请求的方法为"POST",默认是GET
conn.setRequestMethod("POST");
//添加请求头header
conn.setRequestProperty("Host", "zt.wps.cn");
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("sid", wps.getWps_sid());
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8))) {
writer.write(mapToJson);
System.out.println(mapToJson);
writer.flush();
}
try (BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) {
String tmpLine = reader.readLine();
try {
ObjectMapper objectMapper = new ObjectMapper();
HashMap hashMap = objectMapper.readValue(tmpLine, HashMap.class);
String result = (String) hashMap.get("result");
//获取返回值类型
if (result.equals("ok")) {
System.out.println("当前返回值:" + tmpLine);
}
} catch (Exception e) {
System.out.println("当前sid:" + wps.getWps_sid() + "已失效");
}
}
conn.disconnect();
//设置暂停的时间 2 秒
Thread.sleep(2 * 1000);
}
resultSet.ok("success");
log.info("success");
return resultSet;
} catch (IOException | InterruptedException e) {
log.error("error:{}", e.toString());
resultSet.fail("error");
return resultSet;
}
五、最后
由于近期WPS官方限制连续邀请,本项目更改为2s一次发送邀请请求
老项目的博客文章地址:老WPS邀请demo
GitHub地址:源码