-
-
Notifications
You must be signed in to change notification settings - Fork 3k
附录2:主动请求(远程控制)
chenxuyong edited this page Feb 17, 2022
·
25 revisions
SmsForwarder V2.4.0 以上,可以通过 被动接收 或者 主动轮询 获取指令,从而操作本机
【注意】这只是一个先行尝试的功能(来自机油的PR),下一个版本(2.5.0)重点改造此功能
对暴露的api有什么想法欢迎提issue,在合法合规的前提下,酌情考虑会不会添加!
后续版本可能发生的改变(包括但不限于):
- 请求与应答报文重新设计(结构、状态码等统一规范)
- 服务端与客户端双向验签(或对称加密报文)【可选】
- 提供简单的 SmsHub Api 服务端demo
-
WiFi网络下可用,启动后局域网内其他机器可直接调用本机接口
-
与
一键克隆共用本地HttpServer,访问URL:http://本地ip:5000/send_api -
接收一个list并执行操纵,设置处理结果后并在尾部追加一个心跳包后返回原list
接口URL:
http://你的ip/send_api
请求方式:
POST
Content-Type:
application/json; charset=utf-8
请求Body参数:
{
"data": [
{
"action": 0,
"target": "136227276",
"content": "Test Msg1",
"channel": "1"
},
{
"action": 0,
"target": "13636277",
"content": "Test Msg2",
"channel": "2"
}
]
}
请求Body参数:
{
"code": 200,
"data": [
{
"action": "2",
"channel": "SIM1",
"content": "Test Msg1",
"target": "18888888888",
"ts": "1644458153622",
"type": "sms"
},
{
"action": "2",
"channel": "SIM1",
"content": "Test Msg2",
"target": "18888888888",
"ts": "1644458153651",
"type": "sms"
}
],
"heartbeat": {
"action": "-1",
"channel": "SIM1:18888888888;SIM2:18888888889",
"deviceInfo": "{\"Version\":\"2.4.1\",\"heartbeat\":\"30\",\"simOperatorName\":\"中国联通\",\"imei\":xxxxxxxxxxxxxxx\"\",\"SDKVersion\":\"29\",\"mark\":\"Mi8\"}",
"ts": "1644458153565"
},
"msg": ""
}
-
请先在通用设置中,填写服务端地址,再启动服务,APP轮询执行接口返回的操作
-
每隔30秒发送一个心跳包,包含当前设备的信息,children里为上一次心跳后收到的所有消息,服务端需返回一个
list
报文结构:
[{
"action": "0", //发送短信操作(暂时只支持发送操作)
"target": "88888",//收件人手机号
"content": "xxx",//内容
"channel": "1"//卡槽 1或2
},
{...
}]
附录:
//唯一id
private String msgId;
//心跳数据时发送的设备名
private String deviceInfo;
//卡槽信息
private String channel;
//消息内容
private String content;
//错误消息
private String errMsg;
//手机号(;分隔)或包名
private String target;
//状态或操作 0:发送短信, 1:接收到的消息, 2:操作处理成功, 3:操作处理失败, -1:心跳包 (包含deviceInfo字段,children里带有两次心跳间收到的消息)
private String action;
//消息类型 app:通知 phone:来电, sms:短信, battery:电池信息
private String type;
//时间戳
private String ts;
//两次交互之间接收到的消息
private List<SmsHubVo> children;