需求
手机收到任意短信后,自动将短信相关内容转发到如下接口:
http://192.168.3.6:7088/api/sms?client=SMS.X1
0. 安卓手机安装 Tasker
1. 添加配置文件,+添加配置文件(取名“转发任意短信”) -> 事件 -> 电话 -> 收到短信 -> 类型选短信(我不需要彩信),发件人和内容为空 -> 退出将自动保存
2. 添加任务,根据提示为配置文件新建任务,点击 + 添加操作(取名 smsToServer) -> 网络 -> HTTP Request,参数设置如下图
我的API接口是接收 post 表单数据,所以我添加了header字段 Content-Type: application/x-www-form-urlencoded,如果不设置好像默认是JSON数据
查询参数clientId冒号后面不要有空格
Body中用到的几个短信变量含义:
%SMSRN 发件人姓名
%SMSRF 发件人号码
%SMSRB 短信内容
%SMSRD 发件日期
%SMSRT 发件时间
可以看到配置文件与任务已经联动,将右上角的解锁开关打开即可监听短信并转发
3. 接口我是用的 Asp.net core webapi,这样写的Action
// POST: api/sms?machineId=SMS.X1 [HttpPost] public async Task<ActionResult> Post(string clientId, [FromForm]SMSPushData pushData) { //... }
SMSPushData
[Serializable] public class SMSPushData { public string SMSN { get; set; } public string SMSF { get; set; } public string SMSD { get; set; } public string SMST { get; set; } public string SMSB { get; set; } }