云手机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
    下一篇
    常见问题