让你的微信变成机器人

文章类别

人,有七情六欲,有喜怒哀乐,有少壮不努力然后老大徒伤悲,有错过了然后才懂得珍惜。而机器人,在我们的印象里面, 它是没有灵魂的,它只能学习人类的皮毛,然后装模作样,说几句蹩脚的话,走着不协调的步伐。起初机器人在模仿人, 后来反而有人去模仿机器人。说几句蹩脚的话,走着不协调的步伐,跳着所谓的机械舞。是不是很有趣 :)

张小龙说微信这个用完即走的东西,不止让你走,还会让你时常回来。他的产品理念就是用户至上,非常关心用户的行为和 使用体验。这里的用户就是人,人们的使用行为以及心里变化似乎被他看透,为什么说是似乎?因为背后有大数据,有各种统计。

有时候我在想,如果我的微信不是我在使用,而是一个机器人在使用,也就是我用着微信就不走了,赖在那里,谁给我发微信, 我都能24小时回复,是不是很有趣 :)

可能你应该知道,有个网页版的微信,使用手机扫描二维码就可以在网页上和你的朋友们聊天了,它的地址是 https://wx2.qq.com, 那么我们就可以通过这个网页版的微信,拿到一些「请求规则」,然后接通「机器人的API」玩一玩了,是不是很有趣 :)

ok…进入正题

首先在chrome中打开 https://wx2.qq.com ,打开「开发者模式」,然后我们就可以看到:

二维码登录:

wechat

获取联系人:

wechat

返回联系人信息:

wechat

发送信息:

wechat

数据同步: wechat

通过观察我们可以发现微信网页版的大概流程是这样的:

1.打开首页,分配一个随机uuid

2.根据该uuid获取二维码图片。

3.微信客户端扫描该图片,在客户端确认登录。

4.浏览器不停的调用一个接口,如果返回登录成功,则调用登录接口。

5.此时可以获取联系人列表,可以发送消息。然后不断调用同步接口。

6.如果同步接口有返回,则可以获取新消息,然后继续调用同步接口。

我们从开发者工具获取到微信的API之后,我们就可以用代码来调用这些API来使用了,接着我们再找一个 机器人API(网上有许多机器人的免费API,申请一个KEY就可以使用了)。

那么我们可以当接收到朋友发来的消息之后,将消息作为参数调用机器人API,然后将返回的回复内容,发送给 对应的朋友就好了(这来截取部分代码):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 if(msgType == 1){
		if(SpecialUsers.contains(msg.getString("ToUserName"))){
			continue;
		} else if(msg.getString("FromUserName").equals(User.getString("UserName"))){
			continue;
		} else if (msg.getString("ToUserName").indexOf("@@") != -1) {
			String[] peopleContent = content.split(":<br/>");
			LOGGER.info("|" + name + "| " + peopleContent[0] + ":\n" + peopleContent[1].replace("<br/>", "\n"));
		} else {
			LOGGER.info(name + ": " + content);
			    String ans = tulinresult(content);
			    webwxsendmsg(ans, msg.getString("FromUserName"));
				LOGGER.info("自动回复 " + ans);
			}
		}
	}

效果:

wechat

wechat

当然你可以利用微信的API去做一些有意思的事情,比如收到用户的图片信息,然后去调用 一些识别图片信息的API,然后将信息发送给朋友,或者朋友问你天气,你可以通过天气的API 获取到天气信息发送给朋友等等。

最后,如果你要源码,想玩玩,可以在我的公众号「肯定会」中发送「微信机器人」获取!