apscheduler 脚本执行失败_强大脚本功能助您一臂之力-Total Control 通过POST执行 JS API...

你还没开始用手机群控软件做推广吗?做客服系统吗?做工作室吗?做手机测试吗?那你真该好好反省一下了。现在我来讲讲强大的群控软件的脚本功能,让你用起来更得心应手。

Total Control 是一款手机多控软件,可以通过电脑控制一台到100台手机。拥有强大的脚本功能。

1f62d7533372ea888daa89c1407f9cab.png

Total Control既提供 REST API,也提供了 JS API,用户们可以根据自己需求选择接口来实现功能,相比之下 Total Control 提供的JS API 更丰富,功能更强大,为了方便用户,在6.9.0版本Total Control 可以通过POST执行 device.<function> 的 JS API。

85884eb2c9dd58184e6c5912c1599002.png

如果用户想通过 POST 调用 JS API, 可以使用下面介绍的 REST API 在 Total Control 上执行 JS API。

请求方式:POST

http://IP:8090/TotalControl/v1/devices/:device/scripts?cmd=:cmd&param=: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.<function> 的 JS API。 
如果用户想通过 POST 调用 JS API, 可以使用下面介绍的 REST API 在 Total Control 上执行 JS API。
请求方式:POST
http://IP:8090/TotalControl/v1/devices/:device/scripts?cmd=:cmd&param=: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"}
* 恭喜你,成功了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值