利用 Tasker 转发短信到微信
2022-08-25
一、需求
对于多部手机多个号码的用户,解决其接收另一部手机(需为 Android 手机,Tasker 暂时只支持 Android 平台)上号码的短信的需求。
二、原理
利用 Tasker 的 Javascript 脚本读取收到的短信内容并发送到企业微信机器人应用,从而达到从一台手机转发短信到另一台手机上的微信的目的。
三、步骤
1️⃣ 注册企业微信并创建机器人应用
-
-
创建机器人:应用管理-应用-自建-创建应用
-
获取企业 ID、机器人应用的 AgentId 和 Secret
2️⃣ Tasker 配置
-
创建任务
-
编辑任务
-
编辑代码操作
💡 JavaScriptlet 脚本代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
//下面的三个变量值需要修改为自己的 var ID = "ww517c86ddceaf535a"; //企业微信 ID var SECRET = "XxBcnzIayt1ewuUs_yMxb2W4m53IgD7CVmA4W2IG2l8"; //机器人应用SECRET var AGENTID = 1000002; //机器人应用AGENTID //获取消息 var smsrf = global('SMSRF'); var smsrb = global('SMSRB'); var mmsrs = global('MMSRS'); var smsrt = global('SMSRT').replace(/\./, ":"); var pnum = global('PNUM').substring(3); 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 == "%SMSRB") ? (mmsrs == "%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发件时间:" + smsrd + " " + smsrt + "\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 系统权限