前段时间突然对微信里的一些消息感到厌烦,如果能有微软小冰这样的智能机器人帮我自动回复消息就好了。想到就开始动手。
第一步:
登录微信网页版,过程略。
第二步:
选择一个好友,按下F12,找到console控制台,输入如下代码。
var appElement = document.querySelector('[ng-controller=chatSenderController]');var $scope = angular.element(appElement).scope();
$scope.editAreaCtn = "想说的话";
$scope.sendTextMessage();
按下回车后效果

到此为止,两步已经结束。
如果要定时,将$scope.sendTextMessage();改造,加上setTimeout即可。
setTimeout(function(){$scope.sendTextMessage();
},1000);
重复发送同理,只是需要每次给输入框给值
var appElement = document.querySelector('[ng-controller=chatSenderController]');var $scope = angular.element(appElement).scope();
setInterval(function(){
$scope.editAreaCtn = "想说的话";
$scope.sendTextMessage();
},1000);
-------------------------------------------------------------分割线----------------------------------------------------------
其中key就是开发者key,注册账号可以免费获得。info为消息内容。
在浏览器地址栏输入可以看到结果,为一个json串。

机器人准备好了,我们开始吧。
第一步:获取对方发送的消息,可使用如下代码:
function getChatInfo(){var info = '';
var length = document.getElementsByClassName('left').length;
if(length > 0){
info = document.getElementsByClassName('left')[length-1].getElementsByTagName("pre")[0].innerText;
}
return info;
}
第二步:根据对方聊天内容,获取图灵机器人的返回值:
主要依靠XMLHttpRequest对象。
var appElement = document.querySelector('[ng-controller=chatSenderController]');var $scope = angular.element(appElement).scope();
var xmlhttp = new XMLHttpRequest();
function callback(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
var responseText = xmlhttp.responseText;
var str = eval("("+ responseText +")");
$scope.editAreaCtn = str.text;
$scope.sendTextMessage();
}
}
xmlhttp.onreadystatechange = callback;
var oldInfo = '';
function getChatInfo(){
var info = '';
var length = document.getElementsByClassName('left').length;
if(length > 0){
info = document.getElementsByClassName('left')[length-1].getElementsByTagName("pre")[0].innerText;
}
return info;
}
setInterval(function(){
var info = getChatInfo();
if(info != '' && info != oldInfo){
xmlhttp.send();
oldInfo = info;
}
}, 1000);
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String info = request.getParameter("info");
response.sendRedirect(url);
}
xmlhttp.open()中的链接自然要改成这个:
到这里也差不多要结束了,感谢看到这块的同学。当然最终的结果是,没成功。你们不要打我啊。虽然自己生成证书,但浏览器还是不信任,最终没能发出get请求。