现在大部分手机都有定时短信功能。在中学的时候,我用这个功能在整点向我的朋友发送生日祝福。
虽然当时QQ很流行,但我不记得为什么要用短信来送生日祝福了。可能是因为当时的3G流量不便宜,也可能是因为当时学校的信号不好,也可能只是因为包了。免费短信太多...
后来随着微信的兴起,我们进入了全民微信时代。短信基本上只用来查电话费和接收各种验证码。微信是IM的主战场。
但定时短信功能一直让我难以忘怀,尤其是年纪大了,出门上班后的压力不小。
但我也找到了一种使用微信发送定时消息的方法。
当然,这种方法也很程序员,也许这就是作为程序员的附加好处和诅咒。
让我们看看如何实现它。
首先,我们需要登录微信网页版。至于为什么是网页版,是因为手机客户端和电脑客户端都不能轻易的执行我们自定义的脚本,而浏览器可以。
登录成功后,选择需要发送定时消息的好友或群组,会打开对话框,然后使用页面上的“Inspect Element”,切换到“Console”选项卡。
在“控制台”的选项卡中,您可以编写脚本来控制网页的逻辑。我们输入以下代码:
var appElement = document.querySelector('[ng-controller=chatSenderController]');
var $scope = angular.element(appElement).scope();
setInterval(function() {
var now = new Date();
var date = now.getDate();
var hour = now.getHours();
var min = now.getMinutes();
var second = now.getSeconds();
if (second == 0 && min == 30 && hour == 15) { // 发送时间
var output = "This is test message." // 发送内容
$scope.editAreaCtn = output;
$scope.sendTextMessage();
}
}, 1000);
我们可以修改相应的时间和内容来定制我们需要的操作,完成写入回车,到了指定的时间就可以发送消息了:
如果我们需要发送表情怎么办?
也很简单,先在对话框中输入一个表达式,然后使用“Inspect Element”功能找到表达式的代码:
比如这里我选择“
”,然后您可以从“元素”选项卡中看到代码为:
class="qqemoji qqemoji36" text="[衰]_web" src="/zh_CN/htmledition/v2/images/spacer.gif">
只需将上面代码中发送的内容替换为表情符号的代码即可:
var appElement = document.querySelector('[ng-controller=chatSenderController]');
var $scope = angular.element(appElement).scope();
setInterval(function() {
var now = new Date();
var date = now.getDate();
var hour = now.getHours();
var min = now.getMinutes();
var second = now.getSeconds();
if (second == 0 && min == 30 && hour == 15) { // 发送时间
var output = "" // 发送内容
$scope.editAreaCtn = output;
$scope.sendTextMessage();
}
}, 1000);
这里需要注意的是,由于表达式中含有"符号,所以会出现语法冲突,所以我们需要在对应的"前加上转义字符\进行转义,或者将对应的"改为':
var appElement = document.querySelector('[ng-controller=chatSenderController]');
var $scope = angular.element(appElement).scope();
setInterval(function() {
var now = new Date();
var date = now.getDate();
var hour = now.getHours();
var min = now.getMinutes();
var second = now.getSeconds();
if (second == 0 && min == 30 && hour == 15) { // 发送时间
var output = "" // 发送内容
$scope.editAreaCtn = output;
$scope.sendTextMessage();
}
}, 1000);
回车后,可以看到表达式也按计划发送了:
需要注意的几点:
一定要保持网络开放(这不是废话)。
定时消息被发送到当前打开的会话窗口。
脚本读取的是当地时间,所以请以电脑时间为准。其实最好的办法就是设置同步网络时间,既方便又避免不必要的麻烦。
macOS需要注意是否在省电时间范围内,Windows笔记本也需要注意这种情况。
接下来就可以给喜欢的TA送上最准时的祝福啦~
喜不喜欢
我在这里