在Tasker中利用短信的通知实现短信内容转发到微信

       之前的教程是利用Tasker自带的短信变量来实现的,这有一个无法解决问题:在360,魅族,坚果等品牌的手机中无法获取短信的消息内容。
利用短信的通知则可以获取短信的内容,并且对于 华为手机 来说也可以不用关闭短信验证码保护功能,所以相较于原来的方法更简单,方便。
应用通知的变量是一个本地数组变量 %evtprm() ,这个变量数组包含 %evtprm1,%evtprm2等本地变量,其中%evtprm2含有发件人信息,%evtprm3含有通知的具体消息内容。

操作步骤:

1,注册企业微信;2,创建一个应用;3,在tasker中创建配置文件。

  1. 注册企业微信

  1. 创建一个应用

  1. 创建tasker配置文件

    下面是创建图示的说明

点击加号--新建配置点击加号--新建配置

选择触发类型--事件选择触发类型--事件

选择触发条件类型--界面选择触发条件类型--界面

选择触发内容--通知选择触发内容--通知
选择短信应用--信息选择短信应用--信息

点击返回点击返回

新建任务新建任务

点击名字右边的对号点击名字右边的对号

点击加号--添加操作点击加号--添加操作

选择代码选择代码

选择JavaScriptlet选择JavaScriptlet

在此位置填写文末代码在此位置填写文末代码

点击箭头--返回点击箭头--返回

点击对号--保存点击对号--保存

这个是完成后看起来的样子这个是完成后看起来的样子

//下面的三个变量值需要修改
var ID = "ww3c67de248cf7ebad";
var SECRET = "KngBbhHiT055VSVzqLv0vYCadXE0ndrn5o41cmuB2o4";
var AGENTID = 1000002;
//获取消息

var pnum = global('PNUM');
//定义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;
}


    //获取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 = "发件人: " + evtprm[1] + "n收件人: " + pnum + "n短信内容: " + evtprm[2];
        var message = JSON.stringify(
        {
            "touser" : "@all", //@all代表发送给全体成员,也可指定某几个人,比如"a|b|c"
            //"toparty" : "1|2",//部门id
            //"totag" : "1|2",//标签id
            "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) 
    }

在微信中收到的短信内容图示在微信中收到的短信内容图示

注:1.为保证Tasker正常运行,请将Tasker加入电池白名单,即允许Tasker后台运行.允许Tasker自启.允许Tasker被第三方应用启动.
2.为保证配置正常触发,请将Tasker的通知使用权和通知管理权打开.

基于Android 10 ,EMUI 系统测试

本配置教程提供私人指导qq:1225490652

原创文章,作者:记忆水晶,如若转载,请注明出处:https://taskerm.com/2020/03/05/forwarded-sms-to-wechat-by-tasker.html

发表评论

登录后才能评论

评论列表(4条)

  • admin
    记忆水晶 2020-07-16 03:15

    通知这个触发条件在5.3左右的版本中被升级过一次,所以如果是 5.3 之前的版本导出的配置就不能在5.3及以后的版本中导入

    • 9438999
      9438999 2021-11-24 15:25

      @记忆水晶你好,能给我个新的短信或者通知转发到企业微信群的配置吗?在网上找个旧版本的短信转发微信下载后配置无法导入,而照着文章配置完tasker后测试没反应,郁闷,多谢多谢,拜托了

  • iweisen
    iweisen 2021-12-08 14:36

    请问,我用的小米手机,为什么获取不到发件人、收件人、短信内容?通知权限、短信权限都打开了

    以前我用的是直接获取短信内容的方法,可以正常用,但是没有收件人,所以想用这个新代码,结果不行