需求
手機收到任意短信后,自動將短信相關內容轉發到如下接口:
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; } }