首先先说一说吐槽一下微信封闭的生态圈,除了开放给搜狗这个搜索引擎可以搜索微信公众号的 api 之外,几乎没有开放任何可以利用的 api ,固然这有其在安全方面的考虑,但是这就使得一些比较有趣的功能难以实现,例如机器人。而一些比较实用的功能又在官方垃圾客户端中没有实现。
需求 在 chrome 上了 web 版微信的基础上利用 chrome 自带的 console + javascript 实现 自动、循环、发送信息
施工 首先声明,我在事前并 没有 了解过 javascript 这种语言,一切都是通过善用搜索引擎来一步一步实现的,所以请各位看到这一篇文章的大佬们看到有什么不妥的地方欢迎在评论区指出。
网页源码 首先当然是登录网页版微信,顺手打开 F12 开发者工具,尝试着发送了几条信息,并在 network 选项卡里面观察了一下网页的活动,然后发现
<pre id="editArea" contenteditable-directive="" mm-paste="" class="flex edit_area ng-isolate-scope ng-pristine ng-valid" contenteditable="true" ng-blur="editAreaBlur($event)" ng-model="editAreaCtn" ng-click="editAreaClick($event)" ng-keyup="editAreaKeyup($event)" ng-keydown="editAreaKeydown($event)"></pre> 然而并没有什么用。。。
google搜索 然后,我分别以 微信、发信息、chrome、console、javascript 为关键词进行搜索,最终发现了这篇文章–>用javascriptt脚本实现微信定时发送信息,关键词命中。遂打开,发现正是我想要的。
修改代码
// 周一----周五: 6:50 AM 提醒对方起床, 9:30 PM提醒对方回宿舍 var appElement = document.querySelector('[ng-controller=chatSenderController]'); var $scope = angular.element(appElement).scope(); setInterval(function(){ var localTime = new Date(); if(localTime.getDay() < 6){ //非周末 var localTimeString = localTime.toLocaleTimeString(); if(localTimeString.indexOf('上午6:49:00') === 0){ $scope.editAreaCtn = "6.50了,你该起床了!"; $scope.sendTextMessage(); }else if(localTimeString.indexOf('上午6:54:00') === 0){ $scope.editAreaCtn = "今天又是新的一天,祝你好运!"; $scope.sendTextMessage(); }else if(localTimeString.indexOf('下午9:28:00') === 0){ $scope.editAreaCtn = "时间快到9:30了,你该回去了!"; $scope.sendTextMessage(); } } },1000); 在这篇文章中,发送微信消息之前还要进行一波判断,但是我不需要,我只需要无脑发就行,(对了还要设置一个间歇时间,不然就成了刷屏了),最终改成这样:
...