Total Control REST API 快速入门

初学者学习 Total Control REST API 脚本开发,应大致遵循以下流程:
Total Control 的 REST API 支持任意脚本语言, 例如 Java, Node JS, Python, Ruby, C/C++等,初学者应熟悉并掌握至少一种语言基础语法和词汇。
Total Control 多控软件和开发工具的使用。
浏览并熟悉 Total Control 提供的脚本接口,比如 REST API,大致掌握接口名称和功能。记住都有什么功能,需要用的时候打开 REST API 手册查看用法和注意事项,用法跟字典差不多,并不需要死记硬背记住所有函数。
Total Control 的每一个接口都提供了一些源码供大家参考,初学者可以先参考接口的示例代码,再尝试编写简单的脚本,由简单到复杂。

如何使用 Total Control REST API

这里我们用 Total Control 提供的 JS 接口 TCHttpRequest 来举例介绍使用 REST API 发送 HTTP 请求。

公共接口 TCHttpRequest 简介

JS TCHttpRequest API的作用是发送 HTTP 请求。

原型:

TCHttpRequest(url,method,headers,data,timeout)

参数:

url:网站链接字符串,例如:"http://tc.sigma-rt.com.cn"
method:请求方法,缺省为GET,常用的四种请求方式是:GET,DELETE,PUT和POST
headers:请求头,缺省为{}
data:请求正文,缺省为null
timeout:超时时间,缺省为6000

返回值:

成功返回网络对象,其包含属性有:connection、content、contentBytes、contentLength、contentType、cookies、encoding、headers、message、status、url
失败返回null。

如何将用户名和密码 Base64 编码

在电脑上打开 Total Control 软件,在 Total Control 控制面板【系统设置】的 【REST API】栏中找到 REST API 的账户信息(如下图所示),当然这里的用户名和密码也可以根据个人喜好改成其他的,用户名和密码用于token建立连接,获取token需要将用户名密码按照Base64编码。

将用户名和密码(username:password)组装进行 base64 编码生成字符串。 用户可以根据自己的代码语言,用其提供的方法将用户名和密码按照Base64编码。也可以用这个在线编码工具,在明文处输入我的用户和密码” sigma:3D391497” 点击【BASE64编码】,就可以获得BASE64编码值” c2lnbWE6M0QzOTE0OTc=”。

用 Total Control 的 JS 接口 TCHttpRequest 发送 HTTP 请求

使用 REST API 脚本控制手机,需要以下几个步骤:

  • 第一步:认证机制,获取 Total Control 脚本开发所用的开发 token。
    "c2lnbWE6M0QzOTE0OTc="是前面提到的将用户名和密码(username:password)组装进行 base64 编码生成字符串。
    url为"http://localhost:8090/TotalControl/v1/login"
    HTTP请求头:"{Authorization:" c2lnbWE6M0QzOTE0OTc="}"
    请求方法:GET
    请求正文为空
    超时时间为2000毫秒
    
    //用TCHttpRequest发送HTTP 请求获取 Total Control 脚本开发所用的开发 token
    var res = TCHttpRequest("http://localhost:8090/TotalControl/v1/login","GET",{Authorization:" c2lnbWE6M0QzOTE0OTc="},"",2000);
    //获取响应内容
    var ret = res.content;
    print(ret);
    
    
    运行结果如下,这里的"D8JL7UicgXpBI5r7"就是token
    
    {"status":true,"value":{"token":"D8JL7UicgXpBI5r7"}}
    
  • 第二步:获取设备对象,即手机。
    获取设备对象的方法很多,这里我只用获取主控设备对象这一种方法,代码中的“D8JL7UicgXpBI5r7”是第一步获取到的token值。
    
    //用TCHttpRequest发送HTTP 请求获取主控设备对象
    var res = TCHttpRequest("http://localhost:8090/TotalControl/v1/devices/main?token=D8JL7UicgXpBI5r7","GET",{},"",2000);
    //获取响应内容
    var ret = res.content;
    print(ret);
    
    运行结果如下,这里的"device@33254183"就是设备对象
    
    {"id":"device@33254183"}
    
  • 第三步:对第二步获取的设备操作,比如打开应用程序,发送短信等。
    这里我们打开手机(第二步获得的设备对象)上的QQ音乐软件。
    这里的device@33254183是第二步获取到的设备对象
    这里的"D8JL7UicgXpBI5r7"就是第一步获取到的token的值
    这里的com.tencent.qqmusic是需要打开的软件名
    
    //用TCHttpRequest发送HTTP 请求打开QQ音乐软件
    var res = TCHttpRequest("http://localhost:8090/TotalControl/v1/devices/device@33254183/apps/com.tencent.qqmusic?token=D8JL7UicgXpBI5r7&state=active","POST",{},"",2000);
    //获取响应内容
    var ret = res.content;
    print(ret);
    
    运行结果如下,status 为true,表示成功打开QQ音乐软件。
    
    {"status":true,"value":"make it active."}
    

注意,Total Control 多控系统是支持同时控制多台手机的,最多可同时控制100台手机。在脚本使用指南中我会详细讲解获取多设备的方法,如何使用REST API 同时控制多个手机。