OPEN API参考
所有文档

          云手机BAC

          OPEN API参考

          说明

          open-api接口文档

          域名

          https://yunapp-api.baidu.com

          header参数

          字段 名称 类型 必填 备注
          appKey 应用账户名 String

          URL必填参数

          字段 名称 类型 必填 备注
          time 时间戳 timestamp 客户端获取时间戳
          sign 签名 String md5加密

          签名逻辑

          盐值

          盐值(salt)为用户的appSecretKey,从控制台获取

          请求示例

          url: https://yunapp-api.baidu.com/api/armcmapi/openapi/v1/env/info?a=1&b=2&c=3&time=123456930394923&sign=4112D56989C13436DA58D49670D17007

          描述

          1、参与签名的数据为url的所有value,sign不参与签名
          2、根据示例中的key进行排序,然后对values进行相加,最后加上salt(盐值(salt)为用户的appSecretKey,放在字符串的最后)
          3、对拼接后的字符串进行md5加密

          备注:POST请求的body参数与header不参与签名

          demo代码示例

          签名逻辑

          package com.baidu.bac.acs.api.util;
           
          import com.baidu.bac.acs.common.util.encryption.EncryptAndDecryptUtils;
          import com.baidu.bac.acs.common.util.encryption.MD5Utils;
          import org.springframework.util.CollectionUtils;
           
          import java.util.Collections;
          import java.util.List;
          import java.util.Map;
          import java.util.stream.Collectors;
           
          public class Demo {
           
              public static final String SIGN = "sign";
           
              /**
               * 签名
               *
               * @param paramMap
               * @param salt
               * @return
               */
              public static String createSign(Map<String, Object> paramMap, String salt) {
                  if (CollectionUtils.isEmpty(paramMap)) {
                      return EncryptAndDecryptUtils.md5Encrypt(salt);
                  }
           
                  // 对key进行排序
                  List<String> sortedKeys = paramMap.entrySet().stream()
                          .filter(e -> !SIGN.endsWith(e.getKey()))
                          .map(e -> e.getKey())
                          .collect(Collectors.toList());
                  Collections.sort(sortedKeys);
           
                  // 拼接valueString
                  StringBuffer sb = new StringBuffer("");
                  for (String key : sortedKeys) {
                      Object val = paramMap.get(key);
                      if (val == null) {
                          continue;
                      }
                      sb.append(val);
                  }
                  // 拼接盐值
                  sb.append(salt);
           
                  // 加密
                  return md5Encrypt(sb.toString());
              }
           
              /**
               * MD5 加密
               *
               * @param value 待加密字符
               * @return
               */
              public static String md5Encrypt(String value) {
                  String result = null;
                  if (value != null && !"".equals(value.trim())) {
                      result = MD5Utils.encrypt(value, MD5Utils.MD5_KEY);
                  }
                  return result;
              }
          }

          md5

          package com.baidu.bac.acs.common.util.encryption;
           
          import java.security.MessageDigest;
          import java.security.NoSuchAlgorithmException;
           
          public class MD5Utils {
              public final static String MD5_KEY = "MD5";
           
              public final static String SHA_KEY = "SHA1";
           
              public static String encrypt(String value, String key) {
                  try {
                      // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
                      MessageDigest messageDigest = MessageDigest.getInstance(key);
                      // 输入的字符串转换成字节数组
                      byte[] inputByteArray = value.getBytes();
                      // inputByteArray是输入字符串转换得到的字节数组
                      messageDigest.update(inputByteArray);
                      // 转换并返回结果,也是字节数组,包含16个元素
                      byte[] resultByteArray = messageDigest.digest();
                      // 字符数组转换成字符串返回
                      return byteArrayToHex(resultByteArray);
                  } catch (NoSuchAlgorithmException e) {
                      return null;
                  }
              }
           
              private static String byteArrayToHex(byte[] byteArray) {
           
                  // 首先初始化一个字符数组,用来存放每个16进制字符
                  char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                          'A', 'B', 'C', 'D', 'E', 'F'};
                  // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))
                  char[] resultCharArray = new char[byteArray.length * 2];
                  // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去
                  int index = 0;
                  for (byte b : byteArray) {
                      resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
                      resultCharArray[index++] = hexDigits[b & 0xf];
                  }
                  // 字符数组组合成字符串返回
                  return new String(resultCharArray);
              }
          }

          接口设计

          环境

          获取环境变量接口

          描述

          获取环境变量

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/env/info

          请求参数

          返回参数
          字段 名称 类型 备注
          env 环境变量 String dev:测试环境;prod:线上环境
          返回示例
          {
              "success": true,
              "result": {
                  "env": "dev"
              },
              "message": null
          }

          用户

          获取用户信息

          描述

          获取用户信息

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET api/armcmapi/openapi/v1/user/partner/type

          请求参数

          返回参数
          字段 名称 类型 备注
          partnerType 商户类型 Integer 1:新用户;2:公测用户;3:购买商户;4:已合作商户
          groupId 分组id Integer
          accountId 账号id String
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": {
                  "partnerType": 4,
                  "groupId": 100001,
                  "accountId": "ffe7871083924bd2871086ad93657aec"
              }
          }

          总览

          实例状态数量统计

          描述

          获取用户信息

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/state/statistics

          请求参数
          字段 名称 类型 必填 备注
          idcAddress 城市名称 String
          返回参数
          字段 名称 类型 备注
          total 总量 Long
          running 运行中数量 Long
          leisure 空闲中数量 Long
          expired 已过期数量 Long
          expiredSoon 即将过期数量 Long
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": {
                  "total": 2,
                  "running": 2,
                  "leisure": 0,
                  "expired": 0,
                  "expiredSoon": 0
              }
          }

          实例城市数量统计

          描述

          实例城市数量统计

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/city/statistics

          请求参数
          字段 名称 类型 必填 备注
          idcAddress 城市名称 String
          返回参数
          字段 名称 类型 备注
          idcAddress 城市名称 String
          count 数量 Integer
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "idcAddress": "上研",
                      "count": 2
                  }
              ]
          }

          实例付费类型数量统计

          描述

          实例付费类型数量统计

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/payType/statistics

          请求参数
          字段 名称 类型 必填 备注
          idcAddress 城市名称 String
          返回参数
          字段 名称 类型 备注
          payType 付费类型 Integer 0:测试 1:预付费
          count 数量 Integer
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "payType": "1",
                      "count": 2
                  }
              ]
          }

          实例操作

          获取实例列表

          描述

          查询所有实例详细信息

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/list/page

          请求参数
          字段 名称 类型 必填 备注
          padCodes 实例编号 String 多个实例以逗号隔开
          pageSize 页码 int 默认10
          pageNo 每页数量限制 int 默认1
          返回参数
          字段 名称 类型 备注
          id 实例ID int
          padCode 实例编号 String
          groupId 分组ID int
          padIp 设备ip String
          padType 预付类型 int 0:Android试玩 1:云手机 2:web试玩
          installCount app安装数量 int
          enableStatus 启用状态 int 0:人工禁用 1:启用 2:解绑禁用 3:更换禁用 4:体验解绑禁用
          operationStatus 运营状态 int 0:正常 1:运营
          onlineStatus 在线状态 int 0:离线 1:在线
          bindStatus 绑定状态 int 0:非绑定 1:绑定
          controlStatus 控制状态 int 0:离线 1:在线 2:受控中
          errorStatus 故障状态 int 0:正常 1:故障
          motorRoom 机房名称 String
          maintainStatus 维护状态 int 0:正常 1:维护
          virtualStatus 虚拟状态 int 0:在线 1:离线
          authorityStatus 授权状态 int 0:授权 1:未授权
          authorityLevel 实例等级 int 0:普通 1:vip
          idcCode 机房编号 String
          idcAddress 分组ID String
          freeSpace 分组ID Double
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "id": 9,
                      "padCode": "VM010121250084",
                      "groupId": 100001,
                      "padIp": "10.121.250.84",
                      "payType": 1,
                      "installCount": 4,
                      "enableStatus": 1,
                      "operationStatus": 0,
                      "onlineStatus": 1,
                      "bindStatus": 0,
                      "controlStatus": 1,
                      "errorStatus": 0,
                      "motorRoom": "研发测试机房",
                      "idcCode": "INNER-EPLAY-01",
                      "padType": 0,
                      "expireTime": 36000000,
                      "idcAddress": "上研",
                      "maintainStatus": 0,
                      "virtualStatus": 0,
                      "authorityStatus": 0,
                      "authorityLevel": 0,
                      "freeSpace": 0
                  },
                  {
                      "id": 10,
                      "padCode": "VM010121250078",
                      "groupId": 100001,
                      "padIp": "10.121.250.78",
                      "payType": 1,
                      "installCount": 3,
                      "enableStatus": 1,
                      "operationStatus": 0,
                      "onlineStatus": 1,
                      "bindStatus": 0,
                      "controlStatus": 1,
                      "errorStatus": 0,
                      "motorRoom": "研发测试机房",
                      "idcCode": "INNER-EPLAY-01",
                      "padType": 0,
                      "expireTime": 36000000,
                      "idcAddress": "上研",
                      "maintainStatus": 0,
                      "virtualStatus": 0,
                      "authorityStatus": 0,
                      "authorityLevel": 0,
                      "freeSpace": 0
                  }
              ],
              "total": 2,
              "pageNo": 1,
              "pageSize": 10
          }

          下载实例列表

          描述

          下载实例列表信息

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/list/export

          请求参数
          字段 名称 类型 必填 备注
          padCodes 实例编号 String 多个实例以逗号隔开
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }
          下载文件名称

          实例列表XXXXXXXXXXX.xls

          申请直连实例

          描述

          申请直连实例

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/connect/apply

          请求参数
          字段 名称 类型 必填 备注
          padCode 实例编号 String
          onlineTime 有效时间 Long 单位秒,默认一个小时(3600s)
          appId 应用id Integer 应用id不为空表示应用直连,否则为云手机直连
          padType 云手机类型 String 可以从passList获取的pass实例列表中获取到实例类型,0试玩 1云手机,一般都是试玩
          返回参数
          字段 名称 类型 备注
          padCode 实例编号 String
          groupId 分组ID Integer
          deviceToken 直连相关信息 Object
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": {
                  "padCode": "VM010121250084",
                  "groupId": 100001,
                  "deviceToken": {
                      "webControlList": [
                          {
                              "webControlCode": "INNER-WEBSOCKET-CONTROL-01",
                              "webControlInfoList": [
                                  {
                                      "controlIp": "inner.yun-game.com",
                                      "controlPort": 8919
                                  }
                              ]
                          }
                      ],
                      "controlList": [
                          {
                              "controlCode": "INNER-USER-CONTROL-01",
                              "controlInfoList": [
                                  {
                                      "controlIp": "inner.yun-game.com",
                                      "controlPort": 8915
                                  }
                              ]
                          }
                      ],
                      "padList": [
                          {
                              "controlCode": "INNER-USER-CONTROL-01",
                              "padCode": "VM010121250084",
                              "padStatus": "1",
                              "videoCode": "GZ-TEST-USER-VIDEO-01",
                              "padType": "0"
                          }
                      ],
                      "videoList": [
                          {
                              "videoCode": "GZ-TEST-USER-VIDEO-01",
                              "videoInfoList": [
                                  {
                                      "videoProtocol": "2",
                                      "videoUrl": "rtmp://117.48.196.66:110/live",
                                      "videoContext": "1",
                                      "videoDomain": "live",
                                      "videoPort": 110
                                  },
                                  {
                                      "videoProtocol": "",
                                      "videoUrl": "rtmp://117.48.196.66:1936/live",
                                      "videoContext": "",
                                      "videoDomain": "",
                                      "videoPort": -1
                                  }
                              ]
                          }
                      ],
                      "wssWebControlList": [],
                      "sessionId": "70f7d3451be24f4b8b29fcb68a24abe3",
                      "userId": 4538
                  }
              }
          }

          申请镜像直连实例

          描述

          申请镜像直连实例

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/mirror/connect/apply

          请求参数
          字段 名称 类型 必填 备注
          groupId 分组ID Integer
          userId String
          mirrorId 镜像编号 Integer
          onlineTime Integer 默认为3600
          返回参数
          字段 名称 类型 备注
          padCode 实例编号 String
          groupId 分组ID Integer
          deviceToken 直连相关信息 Object
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": {
                  "padCode": "VM010121250084",
                  "groupId": 100001,
                  "deviceToken": {
                      "webControlList": [
                          {
                              "webControlCode": "INNER-WEBSOCKET-CONTROL-01",
                              "webControlInfoList": [
                                  {
                                      "controlIp": "inner.yun-game.com",
                                      "controlPort": 8919
                                  }
                              ]
                          }
                      ],
                      "controlList": [
                          {
                              "controlCode": "INNER-USER-CONTROL-01",
                              "controlInfoList": [
                                  {
                                      "controlIp": "inner.yun-game.com",
                                      "controlPort": 8915
                                  }
                              ]
                          }
                      ],
                      "padList": [
                          {
                              "controlCode": "INNER-USER-CONTROL-01",
                              "padCode": "VM010121250084",
                              "padStatus": "1",
                              "videoCode": "GZ-TEST-USER-VIDEO-01",
                              "padType": "0"
                          }
                      ],
                      "videoList": [
                          {
                              "videoCode": "GZ-TEST-USER-VIDEO-01",
                              "videoInfoList": [
                                  {
                                      "videoProtocol": "2",
                                      "videoUrl": "rtmp://117.48.196.66:110/live",
                                      "videoContext": "1",
                                      "videoDomain": "live",
                                      "videoPort": 110
                                  },
                                  {
                                      "videoProtocol": "",
                                      "videoUrl": "rtmp://117.48.196.66:1936/live",
                                      "videoContext": "",
                                      "videoDomain": "",
                                      "videoPort": -1
                                  }
                              ]
                          }
                      ],
                      "wssWebControlList": [],
                      "sessionId": "70f7d3451be24f4b8b29fcb68a24abe3",
                      "userId": 4538
                  }
              }
          }

          申请断开直连实例

          描述

          申请断开直连实例

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/disconnect/apply

          请求参数
          字段 名称 类型 必填 备注
          padCode 实例编号 String
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          批量初始化实例

          描述

          批量初始化实例

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/init

          请求参数
          字段 名称 类型 必填 备注
          padCodes 实例编号列表 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          批量重启实例

          描述

          批量重启实例

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/reboot

          请求参数
          字段 名称 类型 必填 备注
          padCodes 实例编号列表 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          批量修改实例运营状态

          描述

          批量修改实例运营状态

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/operation/status/update

          请求参数
          字段 名称 类型 必填 备注
          padCodes 实例编号列表 List
          operationStatus 运营状态值 Integer 0:正常;1:运营
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          申请跳板机

          描述

          申请跳板机,此接口没有参数,若用户新添机房,前端可以再次调用该接口,后端会对自动用户的新机房添加新的跳板机权限。

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/springboard/machine/apply

          请求参数

          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          获取跳板机列表(全量获取)

          描述

          获取跳板机列表(全量获取)

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/device/springboard/machine/list

          请求参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "ip": "120.132.16.xx",
                      "port": "7986",
                      "account": "xxx",
                      "passwd": "xxxx",
                      "sshSecretKey": "xxxxxxx2wXB23gIv9I8VK3NhMV+rKHtgkaRFbvzwJq2dsJCIlrYNEoDanMeOopTHX1w==",
                      "idcCode": "INNER-EPLAY-01"
                  }
              ]
          }

          获取实例可安装列表

          描述

          获取实例可安装列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/can/install/list

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 实例编号 String 多个实例以逗号隔开
          返回参数
          字段 名称 类型 备注
          id 实例ID int
          padCode 实例编号 String
          installCount app安装数量 Integer
          motorRoom 机房名称 String
          返回示例
          {
           
              "status": 0,
              "data": [{
                  "padCode": "VM010122008012",
                  "installCount": 3,
                  "motorRoom": "苏州机房"
              }, {
                  "padCode": "VM010122008013",
                  "installCount": 3,
                  "motorRoom": "苏州机房"
              }],
              "message": null
          }

          导出可安装实例列表

          描述

          导出可安装实例列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/can/install/list/export

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 实例编号 String 多个实例以逗号隔开
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }
          下载文件名称

          可安装实例列表XXXXXXXXXXX.xls

          获取实例可卸载列表

          描述

          获取实例可卸载列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/device/can/uninstall/list

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 实例编号 String 多个实例以逗号隔开
          返回参数
          字段 名称 类型 备注
          id 实例ID int
          padCode 实例编号 String
          installCount app安装数量 Integer
          motorRoom 机房名称 String
          返回示例
          {
          	"status": 0,
          	"data": [{
          		"padCode": "VM010122008012",
          		"installCount": 3,
          		"motorRoom": "苏州机房"
          	}, {
          		"padCode": "VM010122008013",
          		"installCount": 3,
          		"motorRoom": "苏州机房"
          	}],
          	"message": null
          }

          实例

          应用列表

          描述

          查询应用列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/list/page

          请求参数
          字段 名称 类型 必填 备注
          id 应用id Integer
          isSupportMirror 是否支持镜像 Integer
          name 应用名称 String 多个实例以逗号隔开
          pageSize 页码 int 默认10
          pageNo 每页数量限制 int 默认1
          返回参数
          字段 名称 类型 备注
          id 应用id Integer
          status 应用状态 Integer 0:下线 1:在线
          taskStatus 任务状态 Integer 0:正常; 1:安装中;2:卸载中;3:覆盖安装中;
          installCount 安装数量 int
          name 应用名称 String
          packageName 包名称 String
          version 版本 String
          versionCode 版本号 String
          size 大小 Double
          md5 md5 String
          summary 摘要 String
          createTime 创建时间(上传时间) timestamp
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "id": 1001411,
                      "status": 1,
                      "taskStatus": 0,
                      "type": 0,
                      "installCount": 0,
                      "settingLevel": 1,
                      "name": "6666",
                      "packageName": "com.mq.CookieCN.mi",
                      "version": "1.3.2",
                      "versionCode": "13",
                      "versionCodeStatistic": {
                          "1.3.2": 1
                      },
                      "size": 32212255,
                      "createTime": 1594805014000,
                      "summary": "",
                      "md5": "bf76ac722c74ec0151a6e8e52ff9643f",
                      "logoUrl": "",
                      "bannerUrl": "",
                      "appIconUrl": "",
                      "downloadUrl": "https://yunapp-download.bj.bcebos.com/ee2da7ea-51da-4f04-9338-fc606d328f84.apk",
                      "score": null
                  },
                  {
                      "id": 1001407,
                      "status": 0,
                      "taskStatus": 0,
                      "type": 0,
                      "installCount": 0,
                      "settingLevel": 1,
                      "name": "出错应用",
                      "packageName": "com.estrongs.android.pop",
                      "version": "4.2.2.8",
                      "versionCode": "10079",
                      "versionCodeStatistic": {},
                      "size": 21474836,
                      "createTime": 1594726131000,
                      "summary": "",
                      "md5": "e3defa86a06cbced5b5e6c079a179240",
                      "logoUrl": "",
                      "bannerUrl": "",
                      "appIconUrl": "",
                      "downloadUrl": "https://yunapp-download.bj.bcebos.com/6fa52a5f-c6cc-405e-844d-1229ec5ba5d2.apk",
                      "score": null
                  }
              ],
              "total": 20,
              "pageNo": 1,
              "pageSize": 2
          }

          获取公共应用列表

          描述

          获取公共应用列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/list/communal

          请求参数

          返回参数
          字段 名称 类型 备注
          id 应用id Integer
          status 应用状态 Integer 0:下线 1:在线
          taskStatus 任务状态 Integer 0:正常; 1:安装中;2:卸载中;3:覆盖安装中;
          installCount 安装数量 int
          name 应用名称 String
          packageName 包名称 String
          version 版本 String
          versionCode 版本号 String
          size 大小 Double
          md5 md5 String
          summary 摘要 String
          createTime 创建时间(上传时间) timestamp
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "id": 1000062,
                      "status": 1,
                      "taskStatus": 0,
                      "type": 1,
                      "installCount": 0,
                      "settingLevel": 0,
                      "name": "搜狗浏览器",
                      "packageName": "sogou.mobile.explorer",
                      "version": "5.27.8",
                      "versionCode": "180913",
                      "versionCodeStatistic": null,
                      "size": 53687091,
                      "createTime": 1586386906000,
                      "summary": "",
                      "md5": "481309e2b8976c4a15c0a03d5f37d8e4",
                      "logoUrl": "",
                      "bannerUrl": "",
                      "appIconUrl": "",
                      "downloadUrl": "https://yunapp-download.bj.bcebos.com/85940641-1fdb-4b55-977f-f5b4d3dd2af0.apk",
                      "score": null
                  },
                  {
                      "id": 1000023,
                      "status": 1,
                      "taskStatus": 0,
                      "type": 1,
                      "installCount": 0,
                      "settingLevel": 0,
                      "name": "爱奇艺",
                      "packageName": "com.qiyi.video",
                      "version": "11.2.5",
                      "versionCode": "800110255",
                      "versionCodeStatistic": null,
                      "size": 32212255,
                      "createTime": 1585891715000,
                      "summary": "",
                      "md5": "1386f3b7f3b26a28d89c7710dce1fd35",
                      "logoUrl": "",
                      "bannerUrl": "",
                      "appIconUrl": "",
                      "downloadUrl": "https://yunapp-download.bj.bcebos.com/0bf1a1ff-f9c2-4db3-92ac-48856a9c1c6a.apk",
                      "score": null
                  }
              ]
          }

          应用列表

          描述

          查询应用列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/list/export

          请求参数
          字段 名称 类型 必填 备注
          id 应用id Integer
          isSupportMirror 是否支持镜像 Integer
          name 应用名称 String
          返回参数
          字段 名称 类型 备注
          id 应用id Integer
          status 应用状态 Integer 0:下线 1:在线
          taskStatus 任务状态 Integer 0:正常; 1:安装中;2:卸载中;3:覆盖安装中;
          installCount 安装数量 int
          name 应用名称 String
          packageName 包名称 String
          version 版本 String
          versionCode 版本号 String
          size 大小 Double
          md5 md5 String
          summary 摘要 String
          createTime 创建时间(上传时间) timestamp
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }
          获取上传accessToken(bos)

          获取上传accessToken(bos)

          应用列表

          描述

          查询应用列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/bos/access/token

          请求参数

          返回参数
          字段 名称 类型 备注
          accessKeyId 临时ak String
          secretAccessKey 临时sk String
          securityToken token String
          expireTime 过期时间 timestamp
          返回示例
          {
              "status": 0,
              "data": {
                  "accessKeyId": "227fe7ce892e11eaa11c21dfc9828065",
                  "secretAccessKey": "aaf05b9a50f74e44be9f4a037d09e296",
                  "securityToken": "ZjkyZmQ2YmQxZTQ3NDcyNjk0ZTg1ZjYyYjlkZjNjODB8AAAAAK8BAACAU9eoSC0O4k6SigDxSqxeqP4wObDM/b0LswGInUsrnM4Si8Z919Ymz/qIC+sEhRCDMS/Ly/S6JPsJXpq8USxNl84wz9aSNWb33stHy3Qgg3VBqAMzLWE3B8jEXQjIfmsYX1QwYp5ZmeTzPGGUoh+PdsIdgSpMfLU6qdtF6mn0XrGMg7TYImrqXiD/D6Oa1Bkp3KNTHNrlc2L6zzhGm+NCe6tGMBxbkEkSvg+xTQpYc6uNyrzaBtAGeLcJPn9X2kSdkzvwYZY1za8edhTSF1V3RsgJVUUE7pT0au8uprKEYl7ujV48S1bOF8w74WWCood7mJJLrFkagHn63NWBAXz118jOYagPkOOihuz5X1A2vQ==",
                  "expireTime": 1588107382000
              },
              "message": null
          }

          上传应用(创建应用)

          描述

          上传应用(创建应用)

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/create

          请求参数
          字段 名称 类型 必填 备注
          name 应用名称 String
          fileName 文件名称 String
          packageName 应用包名 String
          version 版本 String
          versionCode 版本号 String
          size 大小 Long
          md5 md5 String
          summary 摘要 String
          desc 描述 String
          isSupportMirror 是否支持镜像 Integer 0:不支持 1:支持
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          批量安装应用

          描述

          批量安装应用

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/install

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 机器编码列表 List 设备编号列表,若设备列表不为空,则忽略安装数量,且设备编号列表和安装数量不能同时为空
          count 安装数量 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          批量卸载应用

          描述

          批量卸载应用

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/uninstall

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 机器编码列表 List 设备编号列表,若设备列表不为空,则忽略安装数量,且设备编号列表和安装数量不能同时为空
          count 安装数量 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          覆盖安装应用

          描述

          覆盖安装应用

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/cover/install

          请求参数
          字段 名称 类型 必填 备注
          appId 应用ID Integer
          padCodes 机器编码列表 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          删除应用

          描述

          删除应用

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/delete

          请求参数
          字段 名称 类型 必填 备注
          name 应用名称 String
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          获取已安装列表

          描述

          获取已安装列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/installed/device/list

          请求参数
          字段 名称 类型 必填 备注
          appId 应用名称 Integer
          padCodes 实例编码 String 多个实例以逗号隔开
          pageSize 页码 Integer 默认10
          pageNo 每页数量限制 Integer 默认1
          返回参数
          字段 名称 类型 备注
          padcode 实例编码 String
          installCount 安装数量 Integer
          appNames 应用名称 String
          installCount 安装数量 int
          errorStatus 错误状态 Integer
          motorRoom 机房名称 String
          packageVersion 版本号 String
          返回示例
          {
              "status": 0,
              "page": {
                  "orderBy": "",
                  "order": "",
                  "pageNo": 1,
                  "pageSize": 2,
                  "totalCount": 9,
                  "result": [{
                      "padCode": "VM010122008012",
                      "installCount": 2,
                      "appNames": "植物大战僵尸,百度地图",
                      "errorStatus": 0,
                      "motorRoom": "苏州机房",
                      "packageVersion": "10.23.0"
                  }, {
                      "padCode": "VM010122008013",
                      "installCount": 2,
                      "appNames": "植物大战僵尸,百度地图",
                      "errorStatus": 0,
                      "motorRoom": "苏州机房",
                      "packageVersion": "10.23.0"
                  }]
              },
              "message": null
          }

          批量修改应用状态

          描述

          批量修改应用状态

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/status/update

          请求参数
          字段 名称 类型 必填 备注
          status 应用状态 Integer 0:下线;1:上线
          appIdList 应用ID列表 List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          运维与监控

          获取应用任务统计信息

          描述

          获取应用任务统计信息

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/task/statistic/list/page

          请求参数
          字段 名称 类型 必填 备注
          begin 开始时间 timescatmp
          end 结束时间 timescatmp
          status 状态 Integer 1:等待;2:运行;3:完成;4:终止;
          type 类型 Integer 1:安装;2:卸载;3:覆盖安装;
          status 状态 Integer
          pageSize 页码 int 默认10
          pageNo 每页数量限制 int 默认1
          返回参数
          字段 名称 类型 备注
          id 任务id Integer
          appName 应用名称 Integer
          type 任务类型 Integer 1:安装;2:卸载;3:覆盖安装;
          status 任务状态 Integer 1:等待;2:运行;3:完成;4:终止;
          waitCount 等待数量 Integer
          runningCount 运行数量 Integer
          completeCount 完成数量 Integer
          stopCount 终止数量 Integer
          errorCount 错误数量 Integer
          timeoutCount 超时数量 Integer
          operator 操作人 String
          createTime 创建时间 timescatmp
          返回示例
          {
              "status": 0,
              "page": {
                  "orderBy": "",
                  "order": "",
                  "pageNo": 1,
                  "pageSize": 2,
                  "totalCount": 12,
                  "result": [
                      {
                          "id": 250,
                          "appId": 1000103,
                          "appName": "test6",
                          "padCodes": "",
                          "type": 2,
                          "status": 1,
                          "waitCount": 0,
                          "runningCount": 0,
                          "completeCount": 0,
                          "stopCount": 0,
                          "errorCount": 0,
                          "timeoutCount": 0,
                          "occupyCount": 0,
                          "operator": "",
                          "createTime": 1586716182000
                      },
                      {
                          "id": 87,
                          "appId": 1000034,
                          "appName": "手机百度",
                          "padCodes": "",
                          "type": 2,
                          "status": 3,
                          "waitCount": 1,
                          "runningCount": 0,
                          "completeCount": 1,
                          "stopCount": 0,
                          "errorCount": 0,
                          "timeoutCount": 0,
                          "occupyCount": 0,
                          "operator": "",
                          "createTime": 1586222153000
                      }
                  ]
              },
              "message": null
          }

          终止应用任务

          描述

          终止应用任

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/app/task/stop

          请求参数
          字段 名称 类型 必填 备注
          taskId 任务id Integer
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          获取应用任务详情列表

          描述

          获取应用任务详情列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/task/statistic/list/page

          请求参数
          字段 名称 类型 必填 备注
          taskId 任务id Integer
          pageSize 页码 int 默认10
          pageNo 每页数量限制 int 默认1
          返回参数
          字段 名称 类型 备注
          appName 应用名称 String
          padCode 实例编号 String
          duration 使用时长 timestamp
          status 状态 Integer
          type 任务类型 Integer 1:安装;2:卸载;3:覆盖安装;
          createTime 任务发起时间 timestamp
          返回示例
          {
              "status": 0,
              "data": [
                  {
                      "padCode": "VM010121250016",
                      "appId": 1,
                      "appName": "张庆贺",
                      "duration": 500000,
                      "status": 1,
                      "type": 1,
                      "createTime": 1641052800000
                  }
              ],
              "message": null,
              "orderBy": "",
              "order": "",
              "pageNo": 1,
              "pageSize": 20,
              "totalCount": 1
          }

          根据任务id获取应用任务统计信息

          描述

          获取应用任务详情列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/app/task/statistic/detail

          请求参数
          字段 名称 类型 必填 备注
          id 应用任务id Integer
          返回参数
          字段 名称 类型 备注
          id 应用任务ID Integer
          appName 应用名称 Integer
          waitCount 等待数量 Integer
          runningCount 运行数量 Integer
          completeCount 完成数量 Integer
          errorCount 错误数量 Integer
          stopCount 终止数量 Integer
          timeoutCount 超时数量 Integer
          status 状态 Integer
          operator 操作人 String
          type 任务类型 Integer 1:安装;2:卸载;3:覆盖安装;
          createTime 任务发起时间 timestamp
          返回示例
          {
              "success": true,
              "data": {
                  "id": 250,
                  "appId": 1000103,
                  "appName": "test6",
                  "padCodes": "",
                  "type": 2,
                  "status": 1,
                  "waitCount": 0,
                  "runningCount": 0,
                  "completeCount": 0,
                  "stopCount": 0,
                  "errorCount": 0,
                  "timeoutCount": 0,
                  "occupyCount": 0,
                  "operator": "",
                  "createTime": 1586716182000
              },
              "message": null
          }

          镜像

          获取镜像列表

          描述

          获取镜像列表

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          GET /api/armcmapi/openapi/v1/mirror/list

          请求参数
          字段 名称 类型 必填 备注
          appId 应用id Integer
          返回参数
          字段 名称 类型 备注
          id 自增id Integer
          appId 应用id Integer
          appPackageName 应用包名 String
          appVersion 应用版本号 String
          appTaskId 应用任务id Integer
          padCode 实例编码 String
          motorRoom 机房名称 String
          idcCode 机房编码 String
          processorModel 实例版本号 String
          status 镜像制作状态 Integer 镜像制作状态 0:准备,1:安装,2:制作,3:完成,4:失败
          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": [
                  {
                      "id": 5,
                      "groupId": 100001,
                      "appId": 1001423,
                      "appPackageName": "com.netease.tom",
                      "appVersion": "6.12.5",
                      "appTaskIdList": [
                          123,
                          456
                      ],
                      "padCode": "VM010127002003",
                      "motorRoom": "西安测试机房",
                      "idcCode": "XA-TEST-EPLAY-01",
                      "processorModel": "3399",
                      "status": 1
                  }
              ]
          }

          镜像制作

          描述

          镜像制作

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/mirror/create

          请求参数
          字段 名称 类型 必填 备注
          appId 应用id Integer
          extraAppIds 依赖的应用ID List
          padCode 实例编码 String
          appTaskIdList 应用任务ID List
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          更新镜像

          描述

          更新镜像

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/mirror/update

          请求参数
          字段 名称 类型 必填 备注
          id 镜像id Integer
          appTaskIdList 应用任务ID List
          status 镜像制作状态 String 镜像制作状态 0:准备,1:安装,2:制作,3:完成,4:失败

          该接口只能操作准备和安装(0、1)

          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }

          镜像删除

          描述

          镜像删除

          请求头域

          除公共头域外,无其它特殊头域。

          请求路径

          POST /api/armcmapi/openapi/v1/mirror/delete

          请求参数
          字段 名称 类型 必填 备注
          id 镜像id Integer
          返回参数

          返回示例
          {
              "status": 0,
              "message": "成功",
              "data": null
          }
          上一篇
          云游戏 Android SDK
          下一篇
          服务等级协议SLA