你还没开始用手机群控软件做推广吗?做客服系统吗?做工作室吗?做手机测试吗?那你真该好好反省一下了。现在我来讲讲强大的群控软件的脚本功能,让你用起来更得心应手。
Total Control 是一款手机多控软件,可以通过电脑控制一台到100台手机。拥有强大的脚本功能。
Total Control既提供 REST API,也提供了 JS API,用户们可以根据自己需求选择接口来实现功能,相比之下 Total Control 提供的JS API 更丰富,功能更强大,为了方便用户,在6.9.0版本Total Control 可以通过POST执行 device.
如果用户想通过 POST 调用 JS API, 可以使用下面介绍的 REST API 在 Total Control 上执行 JS API。
请求方式:POST
http://IP:8090/TotalControl/v1/devices/:device/scripts?cmd=:cmd¶m=:parm&token=:token
参数说明:
参数名
类型
必选
描述
IP
string
Y
访问 Total Control 服务器的 IP 地址
token
string
Y
Total Control TOKEN
cmd
string
Y
要执行的 JS API 命令对应的方法名称
param
string
N
要执行的 JS API 命令对应的方法参数,多个参数使用’[]’,例如:[0.5, 0.25])
返回示例:
成功,则返回:
{ "status": true, "value": "" }
字段
类型
描述
status
boolean
true:成功 false:失败
value
string
JS API 的返回信息
示例:通过 POST执行JS API “send(sigmaConst.KEY_MENU)"
注意:下列示例是通过本机访问 Total Control 服务器,所以 IP 都是用的 "localhost"。
RingoJS 请求示例:
可以复制下面的代码,在 Total Control 的脚本终端中执行,也可以保存为后缀为 js 的文件, 例如:example.js,在Total Control 执行器中执行。
//导入一些 ringoJS 的包 var {request} = require('ringo/httpclient'); var base64 = require('ringo/base64'); //将用户名密码编码,'sigma:3D391497'是用户名和密码,在Total Control系统设置里面可以看到 var userpass = base64.encode('sigma:3D391497'); //第一步:获取 Total Control 脚本开发所用的开发 token var gettoken = request({ method: 'GET', url: 'http://localhost:8090/TotalControl/v1/login', headers: {'Authorization': userpass} }); //将获取的响应内容转换成json对象 var ret_token = eval('(' + gettoken.content + ')'); var token = ret_token.value.token; print("//获取 token 的值为:" + token); //第二步:获取当前主控设备 ID 值 var getdevice = request({ method: 'GET', url: 'http://localhost:8090/TotalControl/v1/devices/main?token=' + token }); var device = eval('(' + getdevice.content + ')').id; print("//获取到设备的 ID:"+ device); //第三步:通过 POST 调用 JS API var ret = request({ method: 'POST', url: 'http://localhost:8090/TotalControl/v1/devices/'+ device+'/scripts', data: { "token": token, "cmd":"send", "param":"sigmaConst.KEY_MENU" } }); print(ret.content);
RingoJS 示例运行结果:
成功,则返回:
//获取 token 的值为:m195zZEgY91PMcbo //获取到设备的 ID:device@230441652 { "status": true, "value": "0" }
易语言请求示例:
.版本 2 .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 .局部变量 base64, 文本型 .局部变量 token, 文本型 .局部变量 device, 文本型 .局部变量 j_token, 类_json, , , 用来解析获取 token 的 json .局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json .局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json .局部变量 bool, 逻辑型 .局部变量 bool_dev, 逻辑型 .局部变量 bool_ret, 逻辑型 .局部变量 status, 文本型 base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”))) 输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64) bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , ))) .如果 (bool) 输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ()) token = j_token.取通用属性 (“['value'].token”) 输出调试文本 (“获取的 token 值为: ” + token) bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/main?token=” + token, 0)))) .如果 (bool_dev) 输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ()) device = j_dev.取通用属性 (“['id']”) 输出调试文本 (“获取的设备 ID 值为: ” + device) bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/scripts?cmd=send¶m=sigmaConst.KEY_MENU&token=” + token, 1)))) .如果 (bool_ret) 输出调试文本 (“第三步,通过 POST 调用 JS API,返回值为: ” + j_ret.取数据文本 ()) status = j_ret.取属性对象 (“status”) .如果 (status = “true”) 输出调试文本 (“恭喜你,成功了!”) .否则 输出调试文本 (“不好意思,失败了!”) .如果结束 .否则 输出调试文本 (“该 API 执行失败”) .如果结束 .否则 输出调试文本 (“获取设备 ID 值失败”) .如果结束 .否则 输出调试文本 (“获取 token 失败”) .如果结束
易语言代码运行结果:
成功,则返回:
* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc= * 第一步,获取 token,返回值为:{"status":true,"value":{"token":"U56adwI779838M6F"}} * 获取的 token 值为: U56adwI779838M6F * 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"} * 获取的设备 ID 值为: device@230441652 * 第三步,通过 POST 调用 JS API,返回值为: {"status":true,"value":"0"} * 恭喜你,成功了! 你还没开始用手机群控软件做推广吗?做客服系统吗?做工作室吗?做手机测试吗?那你真该好好反省一下了。现在我来讲讲强大的群控软件的脚本功能,让你用起来更得心应手。 Total Control 是一款手机多控软件,可以通过电脑控制一台到100台手机。拥有强大的脚本功能。 Total Control既提供 REST API,也提供了 JS API,用户们可以根据自己需求选择接口来实现功能,相比之下 Total Control 提供的JS API 更丰富,功能更强大,为了方便用户,在6.9.0版本Total Control 可以通过POST执行 device. 的 JS API。 如果用户想通过 POST 调用 JS API, 可以使用下面介绍的 REST API 在 Total Control 上执行 JS API。 请求方式:POST http://IP:8090/TotalControl/v1/devices/:device/scripts?cmd=:cmd¶m=:parm&token=:token 参数说明: 参数名 类型 必选 描述 IP string Y 访问 Total Control 服务器的 IP 地址 token string Y Total Control TOKEN cmd string Y 要执行的 JS API 命令对应的方法名称 param string N 要执行的 JS API 命令对应的方法参数,多个参数使用’[]’,例如:[0.5, 0.25]) 返回示例: 成功,则返回: { "status": true, "value": "" } 字段 类型 描述 status boolean true:成功 false:失败 value string JS API 的返回信息 示例:通过 POST执行JS API “send(sigmaConst.KEY_MENU)" 注意:下列示例是通过本机访问 Total Control 服务器,所以 IP 都是用的 "localhost"。 RingoJS 请求示例: 可以复制下面的代码,在 Total Control 的脚本终端中执行,也可以保存为后缀为 js 的文件, 例如:example.js,在Total Control 执行器中执行。 //导入一些 ringoJS 的包 var {request} = require('ringo/httpclient'); var base64 = require('ringo/base64'); //将用户名密码编码,'sigma:3D391497'是用户名和密码,在Total Control系统设置里面可以看到 var userpass = base64.encode('sigma:3D391497'); //第一步:获取 Total Control 脚本开发所用的开发 token var gettoken = request({ method: 'GET', url: 'http://localhost:8090/TotalControl/v1/login', headers: {'Authorization': userpass} }); //将获取的响应内容转换成json对象 var ret_token = eval('(' + gettoken.content + ')'); var token = ret_token.value.token; print("//获取 token 的值为:" + token); //第二步:获取当前主控设备 ID 值 var getdevice = request({ method: 'GET', url: 'http://localhost:8090/TotalControl/v1/devices/main?token=' + token }); var device = eval('(' + getdevice.content + ')').id; print("//获取到设备的 ID:"+ device); //第三步:通过 POST 调用 JS API var ret = request({ method: 'POST', url: 'http://localhost:8090/TotalControl/v1/devices/'+ device+'/scripts', data: { "token": token, "cmd":"send", "param":"sigmaConst.KEY_MENU" } }); print(ret.content); RingoJS 示例运行结果: 成功,则返回: //获取 token 的值为:m195zZEgY91PMcbo //获取到设备的 ID:device@230441652 { "status": true, "value": "0" } 易语言请求示例: .版本 2 .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 .局部变量 base64, 文本型 .局部变量 token, 文本型 .局部变量 device, 文本型 .局部变量 j_token, 类_json, , , 用来解析获取 token 的 json .局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json .局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json .局部变量 bool, 逻辑型 .局部变量 bool_dev, 逻辑型 .局部变量 bool_ret, 逻辑型 .局部变量 status, 文本型 base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”))) 输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64) bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , ))) .如果 (bool) 输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ()) token = j_token.取通用属性 (“['value'].token”) 输出调试文本 (“获取的 token 值为: ” + token) bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/main?token=” + token, 0)))) .如果 (bool_dev) 输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ()) device = j_dev.取通用属性 (“['id']”) 输出调试文本 (“获取的设备 ID 值为: ” + device) bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/scripts?cmd=send¶m=sigmaConst.KEY_MENU&token=” + token, 1)))) .如果 (bool_ret) 输出调试文本 (“第三步,通过 POST 调用 JS API,返回值为: ” + j_ret.取数据文本 ()) status = j_ret.取属性对象 (“status”) .如果 (status = “true”) 输出调试文本 (“恭喜你,成功了!”) .否则 输出调试文本 (“不好意思,失败了!”) .如果结束 .否则 输出调试文本 (“该 API 执行失败”) .如果结束 .否则 输出调试文本 (“获取设备 ID 值失败”) .如果结束 .否则 输出调试文本 (“获取 token 失败”) .如果结束 易语言代码运行结果: 成功,则返回: * 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc= * 第一步,获取 token,返回值为:{"status":true,"value":{"token":"U56adwI779838M6F"}} * 获取的 token 值为: U56adwI779838M6F * 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"} * 获取的设备 ID 值为: device@230441652 * 第三步,通过 POST 调用 JS API,返回值为: {"status":true,"value":"0"} * 恭喜你,成功了!