用Tasker实现收到Android手机短信自动转发到微信

之前的一篇文章《用Tasker实现Android手机短信转发到Telegram》介绍了用tasker实现手机短信转发的功能,主要是介绍转发到Telegram的方法,对转发到微信的方法一句带过,鉴于某些原因没有详细介绍,本篇简单介绍下如何使用tasker自动转发手机短信到微信上。

短信转发到微信上是通过使用企业微信的一项功能:企业微信收到的信息可以同步到微信上,而企业微信有着丰富的可开发性。

整个操作步骤是:1,注册企业微信;2,创建一个应用;3,在tasker中创建配置文件。

    1. 注册企业微信
    1. 创建一个应用
    1. 创建tasker配置文件
      下面是创建图示的说明
用Tasker实现收到Android手机短信自动转发到微信
点击加号–新建配置
用Tasker实现收到Android手机短信自动转发到微信
选择触发类型–事件
用Tasker实现收到Android手机短信自动转发到微信
选择触发条件类型–电话
用Tasker实现收到Android手机短信自动转发到微信
选择触发内容–收到短信
用Tasker实现收到Android手机短信自动转发到微信
点击返回
用Tasker实现收到Android手机短信自动转发到微信
新建任务
用Tasker实现收到Android手机短信自动转发到微信
自定义任务名字(可省略不填)
用Tasker实现收到Android手机短信自动转发到微信
点击名字右边的对号
用Tasker实现收到Android手机短信自动转发到微信
点击加号–新建操作
用Tasker实现收到Android手机短信自动转发到微信
选择代码
用Tasker实现收到Android手机短信自动转发到微信
选择JavaScriptlet
用Tasker实现收到Android手机短信自动转发到微信
在此位置填写代码
用Tasker实现收到Android手机短信自动转发到微信
假设填写 flash–好吧,截图截早了
用Tasker实现收到Android手机短信自动转发到微信
点击箭头–返回
用Tasker实现收到Android手机短信自动转发到微信
点击对号–保存
用Tasker实现收到Android手机短信自动转发到微信
这个是完成后看起来的样子

//下面的三个变量值需要修改
var ID = "ww3c67de248cf7ebad";
var SECRET = "KngBbhHiT055VSVzqLv0vYCadXE0ndrn5o41cmuB2o4";
var AGENTID = 1000002;
//获取消息
var smsrf = global('SMSRF');
var smsrb = global('SMSRB');
var mmsrs = global('MMSRS');
var smsrt = global('SMSRT').replace(/\./, ":");
var pnum = global('PNUM');
var smsrd = global('SMSRD');
//定义post方法
function postHttp(url, data) 
{
    var xhr = new XMLHttpRequest();
    xhr.addEventListener("readystatechange", function () 
    {
        if (this.readyState === 4) {
            //flash(this.responseText);
            //显示返回消息,可删除本行
        }
    });
    xhr.open("POST", url, false);
    xhr.send(data);
    return xhr.responseText;
}
//定义get方法
function getHttp(url) 
{
    var xhr = new XMLHttpRequest();
    xhr.addEventListener("readystatechange", function () 
    {
        if (this.readyState === 4) {
            //flash(this.responseText);
            //显示返回消息,可删除本行
        }
    });
    xhr.open("GET", url, false);
    xhr.send();
    return xhr.responseText;
}
//判断是短信,彩信还是无法获取短信内容
smsrb = (smsrb == "{4746aa5fa3d870d47cdd6c6677da894fc4983e37a4bcf6fa0686a3fe0e16ddcc}SMSRB") ? (mmsrs == "{4746aa5fa3d870d47cdd6c6677da894fc4983e37a4bcf6fa0686a3fe0e16ddcc}MMSRS") ? "无法获取短信内容" : mmsrs : smsrb;
//
if (smsrb == "无法获取内容") {
    flashLong(smsrb)
}
else 
{
    //获取token
    var tokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + ID + "&corpsecret=" + SECRET;
    var access_tokenJson = JSON.parse(getHttp(tokenUrl));
    if (access_tokenJson.errcode == 0)
    {
        var access_token = access_tokenJson.access_token;
        //发送消息(文本)
        var content = "发件人: " + smsrf + "\n收件人: " + pnum + "\n时间: " + smsrt + ",  日期: " + smsrd + "\n短信内容: " + smsrb;
        var message = JSON.stringify(
        {
            "touser" : "@all", //@all代表发送给全体成员,也可指定某几个人,比如"a|b|c"
            //"toparty" : "1|2",//部门id
            //"totag" : "1|2",//标签id,文档说明:https://work.weixin.qq.com/api/doc#90000/90135/90236
            "msgtype" : "text", "agentid" : AGENTID, "text" : {
                "content" : content 
            },
            "safe" : 0
        });
        var msgUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + access_token;
     postHttp(msgUrl, message) 
    }
    else if (access_tokenJson.errcode == 40013) {
        flashLong("ID 错误,请检查是否修改正确(请注意不要有空格)");
    }
    else if (access_tokenJson.errcode == 40001) {
        flashLong("SECRET 错误,请检查是否修改正确(请注意不要有空格)");
    }
};
用Tasker实现收到Android手机短信自动转发到微信
在微信中收到的短信内容图示

发送图片到微信的配置也完成了

注:1.为保证Tasker正常运行,请将Tasker加入电池白名单,即允许Tasker后台运行.允许Tasker自启.允许Tasker被第三方应用启动.
2.为保证配置正常触发,请将Tasker的短信权限和通知权限打开,并将个别定制系统的短信保护功能关闭.

附上配置导入链接:

配置最后更新于2020.01