FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 前言

开发中心 OpenAPI 是 FinClip 服务端的开放出来的一些核心链路的接口。允许您以编程方式与 FinClip 服务端交互。用于自动执行任务、与其他工具集成并创建自定义工作流程等

# 快速开始

  1. 在开发中心的个人中心中,选择创建 Personal Access Token
  2. 勾选当前 Token 需要具备的权限,并创建。注意:请妥善保存创建生成的 Access Token,后续无法找回,只能重置
  3. 选择下面任意的OpenAPI接口,在请求头嵌入Authorization 的 header,值为: Bearer {PersonalAccessToken}
    • 注意:这个header是所有 OpenAPI 接口都需要传的参数

# 授权范围

授权范围是OpenAPI权限集

以下是具体的授权范围的说明

授权组 授权范围 说明
成员管理 成员-查看 合作成员的查看
成员-编辑 邀请合作成员
角色-查看 查看系统中定义的角色及其权限
角色-编辑 编辑角色权限及分配角色给成员
小程序 小程序-查看 查看小程序的基本信息
小程序-编辑 编辑小程序的基本设置
小程序版本-查看 查看小程序的历史版本信息
小程序版本-编辑 发布或更新小程序版本
小程序统一认证 管理小程序的统一认证设置
小程序CI 用于小程序快速上传代码包 & 上架
消息订阅 用于小程序模板消息订阅的
应用 应用-查看 查看应用的基本信息
应用-编辑 编辑应用的设置
自定义API-查看 查看自定义 API 的定义和权限
自定义API-编辑 创建、编辑或删除自定义 API
自定义菜单-查看 查看自定义菜单的设置和配置
自定义菜单-编辑 创建、编辑或删除自定义菜单

# API

以下的 OpenAPI 接口会以授权范围作为目录,只有拥有了该授权范围的 Personal Access Token 才可以访问具体的接口。

# 1. 通用接口

通用接口指不依赖任何授权范围的 OpenAPI,主要是一些用户账户相关的一些基础功能接口

# 1.1 获取菜单权限树

请求URL

GET /api/v1/open/dev/auth/tree

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 无

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "permissionTree": { // 当前用户的权限树
            "childrenIds": [
                ""
            ],
            "desc": "",
            "exist": true,
            "hasPermission": true,
            "id": "",
            "itemType": 1,
            "name": "",
            "parentId": ""
        }
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 1.2 生成短链

请求URL

GET /api/v1/open/dev/short-chain/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
lUrl string 短链的跳转地址

请求示例

{
    "lUrl": "https://www.finclip.com"
}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "sUrl": "/s/4c2zF4" // 短链地址, 需要自行进行域名的拼接
    },
    "traceid": "1ed1bf74c77745ac9ddde22247f7d157"
}

# 2. 成员-查看

# 2.1 获取体验成员列表

请求URL

GET /api/v1/open/dev/trial-user/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
keyword string 模糊搜索关键字
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "createTime": 1723529917125, // 创建时间。毫秒级时间戳
            "updateTime": 1723529917125, // 更新时间。毫秒级时间戳
            "userId": "13000000000" // 体验成员的标识
        },
        "total": 1 // 总数
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 2.2 获取账号所属角色列表

请求URL

GET /api/v1/open/dev/account/role/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
accountId string
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "builtinRoleKey": "admin", // 内置角色的key,现有:admin,data_analyst,developer,super_admin 四种
            "name": "", // 角色名称
            "roleId": "2309190518900000" // 角色id
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 2.3 获取组织成员列表

请求URL

GET /api/v1/open/dev/member/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
keyword string
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "members": {
            "account": "", // 账户名
            "accountId": "", // 账户id
            "createTime": 1, // 创建时间
            "email": "", // 邮箱
            "isAdmin": 1, // 是否是组织管理员 0=否 1=是
            "memberId": "", // 当前账号在组织下的成员id
            "organId": "", // 组织id
            "phone": "", // 账户的手机号
            "platform": 1, // 哪段的用户。1=开发中心 2=数字中心,这个接口固定会返回1
            "roleList": { // 角色列表
                "builtinRoleKey": "",
                "name": "",
                "roleId": ""
            },
            "status": 1 // 状态 0:正常 1:冻结
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 3. 成员-编辑

# 3.1 移除组织成员

请求URL

POST /api/v1/open/dev/member/delete

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
memberIds string[] 需要移除的成员id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 3.2 生成邀请组织成员链接请求

请求URL

POST /api/v1/open/dev/organ/invite-token

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
apiServer string 链接的域名地址,例如:https://www.finclip.com
expireTime int 未来过期时间,单位毫秒,例如:1756539106902
neverExpire bool 是否允许过期,true:永久有效;false允许过期
singleUse bool 是否允许多次使用,true,一次性;false:多次使用
roleIds []string 角色id,可通过接口/api/v1/open/dev/role/list来获取得到的roleId

示例响应


{
    "error": "",
    "errcode": "OK",
    "data": {
        "inviteToken": "8cb7128ae8414e6f92c79802131e8a65",
        "shortUrl": "/s/3CkrQB" //短链,需要拼接apiServer使用
    },
    "traceid": "787d42e3623848a9b0600475602e99c4"
}

# 4. 角色-查看

# 4.1 获取角色下的账号列表

请求URL

GET /api/v1/open/dev/role/account/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
roleId string 角色id
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "accounts": {
            "account": "", // 账户名
            "accountId": "", // 账户id
            "createTime": 1, // 账户创建时间
            "email": "", // 邮箱
            "phone": "" // 手机号
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 4.2 获取角色列表

请求URL

GET /api/v1/open/dev/role/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
pageNo int 页码。从1开始
pageSize int 每页数量
keyword string 角色名称模糊搜索关键字

示例响应


{
    "errcode": "",
    "error": "",
    "data": {
      "items": [
        {
          "name": "", // 角色名
          "roleId": "", // 角色id
          "isBuiltin": false, // 是否内置角色
          "accountCount": 1, // 角色下的成员数
          "createTime": 1723529917125,
          "update_time": 1723529917125
        }
      ],
      "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5. 角色-编辑

# 5.1 删除角色

请求URL

POST /api/v1/open/dev/role/delete

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
roleId string 角色id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5.2 账号绑定角色

备注

每次请求进来的都是全量的角色列表,会将旧的关系删除

请求URL

POST /api/v1/open/dev/account/role/binding

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
accountId string 账户id
roleIds string[] 拥有的角色id列表

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5.3 角色中移除账号

请求URL

POST /api/v1/open/dev/role/account/delete

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
accountIds string[] 即将移除的成员id列表
roleId string 角色id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5.4 绑定账号到角色

备注

每次请求进来的都是增量的成员列表,不会将旧的关系删除

请求URL

POST /api/v1/open/dev/role/account/binding

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
accountIds string[] 成员id列表
roleId string 角色id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5.5 更新角色

请求URL

POST /api/v1/open/dev/role/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
idePermissionTree Map<string, object> ide_权限树
permissionTree Map<string, object> 管理后台 权限树
roleId string 角色id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 5.6 创建角色

请求URL

POST /api/v1/open/dev/role/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
idePermissionTree Map<string, object> ide 权限树
permissionTree Map<string, object> 管理后台 权限树
roleName string 角色名称

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "roleId": ""
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 6. 小程序-查看

# 6.1 获取当前组织的资源组列表

请求URL

GET /api/v1/open/dev/resource-group/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
groupId string 资源组id进行过滤
platform int 平台类型 1=开发服务端 2=数字端
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "groups": {
            "createTime": 1, // 创建时间
            "groupId": "", // 资源组id
            "name": "", // 资源组名称
            "roleId": "", // 绑定的角色id
            "organId": "", // 组织id
            "status": 1, // 状态 1=正常 2=禁用
            "updateTime": 1 // 更新时间
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 6.2 获取小程序列表

请求URL

GET /api/v1/open/dev/mini-apps/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
appStatus string 多选,逗号分隔。1=已上架 2=未上架 3=已下架 4=不可发布 5=不可用
keyword string 模糊搜索关键词。小程序名称
pageNo int 页码。从1开始
pageSize int 每页数量
projectType string 多选,逗号分隔。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗
sortType string 排序方式
1. created: 创建时间正序
2. -created: 创建时间倒序
3. updated: 更新时间正确
4. -updated: 更新时间倒序

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "appClass": "", // 小程序分类的i18n翻译
            "appClassKey": "", // 小程序分类的唯一key
            "createTime": 1, // 创建时间
            "desc": "", // 简述
            "displayLang": "zh",
            "displayStatus": 1,  // 1=已上架 2=未上架 3=已下架 4=不可发布 5=不可用
            "isForbidden": true, // 是否被禁用
            "logo": "2229372745009605", // logo图片网盘id,需要拼接,域名+/api/v1/mop/runtime/download/{logo},例如,https://www.finclip.com/api/v1/mop/runtime/download/2229372745009605
            "miniAppId": "", // 小程序id
            "name": "", // 小程序名称
            "organId": "", // 小程序所属的组织id
            "organName": "", // 小程序所属的组织名称
            "projectType": 1, // 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗
            "status": 1, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝
            "updateTime": 1 // 更新时间
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 6.2 获取小程序二维码

请求URL

POST /api/v1/open/dev/mini-apps/qr-code/fetch

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
apiServer string 主服务器地址
miniAppId string 小程序id
type int 二维码类型1:审核版二维码,2:体验版二维码,3:临时版二维码,4:线上版二维码,5:真机调试版二维码,6:最新提交的开发版
startParams object 参数信息json,例如:{"path": "pages/API/index/index","query": "a=1&b=2"}
expireTime int 过期时间,单位是秒,该字段只能用在最新提交的开发版;其余,审核版固定过期3分钟,临时版&真机调试版固定过期时间6小时

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "expireTime":1750404869000, //过期时间,单位是毫秒,0代表永久有效
        "url": "https://fc-testing.finogeeks.club/api/v1/mop/runtime/applet/-f-6b8371c76de54d87--"
    },
    "traceid": "36bf5bc583614024b71d830980a8d660"
}

# 6.3 获取小程序详情

请求URL

GET /api/v1/open/dev/mini-apps/{miniAppId}

请求参数 参数位置: path

字段 类型 含义
miniAppId string 小程序id

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "appClass": "", // 小程序分类
        "appClassKey": "", // 小程序分类key
        "createBy": "", // 创建人
        "createTime": 1, // 创建时间
        "creatorAccount": "", // 创建人账号
        "desc": "", // 小程序简介
        "detailDesc": "", // 小程序详细描述
        "displayLang": "", // 小程序显示语言
        "isForbidden": true, // 是否禁用
        "logo": "", // 小程序logo
        "miniAppId": "", // 小程序id
        "name": "", // 小程序名称
        "organId": "", // 小程序所属组织id
        "organName": "", // 小程序所属组织名称
        "privacySettingType": 1, // 小程序隐私设置情况。0=未设置 1=已设置自定义内容 2=已设置默认内容
        "projectType": 1, // 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗
        "searchable": true, // 是否允许搜索
        "status": 1, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝
        "testInfo": 1, // 小程序测试信息
        "updateTime": 1, // 更新时间
        "version": "" // 上架的版本号
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7. 小程序-编辑

# 7.1 将小程序绑定/解绑到资源组

请求URL

POST /api/v1/open/dev/resource-group/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
resourceGroupId string 资源组id
hostAppIds []string 应用id列表
miniAppIds []string 小程序id列表

请求示例

{
    "hostAppIds": [],
    "miniAppIds": [],
    "resourceGroupId": "2793488298272837"
}

示例响应

{
    "errcode": "OK",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7.2 将成员添加进资源组

请求URL

POST /api/v1/open/dev/resource-group/account/add

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
resourceGroupId string 资源组id
accountIds []string 要添加到资源组的账户Id列表

请求示例

{
    "resourceGroupId": "2923919726494277",
    "accountIds": [
        "2722814788530949"
    ]
}

示例响应

{
    "errcode": "OK",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7.3 将成员移出资源组

请求URL

POST /api/v1/open/dev/resource-group/account/delete

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
resourceGroupId string 资源组id
accountIds []string 要从资源组中移出的账户Id列表

请求示例

{
    "resourceGroupId": "2923919726494277",
    "accountIds": [
        "2722814788530949"
    ]
}

示例响应

{
    "errcode": "OK",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7.4 创建小程序

请求URL

POST /api/v1/open/dev/mini-apps/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
detailDesc string 小程序详细描述
logo string 小程序logo
name string 小程序名称
projectType int 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗
appClassKey string 小程序分类
desc string 小程序简介

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "appClass": "", // 小程序分类的i18n翻译
        "appClassKey": "", // 小程序分类的唯一key
        "createBy": "", // 创建人id
        "createTime": 1, // 创建时间
        "creatorAccount": "", // 创建人账户名
        "desc": "", // 小程序描述
        "detailDesc": "", // 小程序详细描述
        "isForbidden": true, // 是否被禁用
        "logo": "", // 小程序logo
        "miniAppId": "", // 小程序id
        "name": "", // 小程序名称
        "organId": "", // 小程序所属组织id
        "organName": "", // 小程序所属组织名称
        "privacySettingType": 1, // 小程序隐私设置情况。0=未设置 1=已设置自定义内容 2=已设置默认内容
        "projectType": 1, // 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗
        "searchable": true, // 是否允许搜索
        "status": 1, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝
        "updateTime": 1, // 更新时间
        "version": "" // 上架的版本号
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7.2 更新小程序

请求URL

POST /api/v1/open/dev/mini-apps/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
name string 小程序名称
appClassKey string 小程序分类的唯一key
desc string 简述
detailDesc string 小程序详细描述
logo string logo
miniAppId string 小程序id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 7.3 禁用/启用小程序

请求URL

POST /api/v1/open/dev/mini-apps/forbid

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
isForbidden bool 是否禁用
miniAppId string 小程序id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

请求URL

POST /api/v1/open/dev/mini-apps/logo/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body form-data

字段 类型 含义
file file 文件

示例响应


{
    "error": "",
    "errcode": "OK",
    "data": {
        "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段
    },
    "traceid": "c3d1cf08389947dab3623125006eb39c"
}

# 7.5 更新小程序隐私设置

请求URL

POST /api/v1/open/dev/mini-apps/privacy-setting/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppId string 小程序id
commitType int 提交类型,默认选1。可选值:
1=本小程序开发者承诺并保证,未以任何方式处理用户的任何信息。如后续有处理用户信息,会及时更新《小程序隐私保护指引》
2=本小程序处理了用户信息,将如实填写并及时更新用户信息处理情况

示例响应


{
    "error": "",
    "errcode": "OK",
    "data": {
    },
    "traceid": "c3d1cf08389947dab3623125006eb39c"
}

# 8. 小程序版本-查看

# 8.1 获取小程序最新的版本信息

请求URL

GET /api/v1/open/dev/mini-apps/versions/latest

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
miniAppId string 小程序id

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "onlineVersion": { // 线上版信息
            "miniAppVersionId": "2329398106793477", // 小程序版本id
            "miniAppId": "fc2329386816071045", // 小程序id
            "name": "翻译测试", // 小程序版本快照名称
            "logo": "2329064445187589", // 小程序版本快照logo
            "version": "1.0.0", // 小程序版本号
            "desc": "中文简介", // 小程序版本快照描述
            "detailDesc": "中文描述", // 小程序版本快照详细描述
            "appClassKey": "zixun", // 小程序版本快照分类key
            "appClass": "资讯", // 小程序版本快照分类key 对应的i18n翻译
            "status": 6, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝
            "autoPub": false, // 是否自动发布
            "inGrayRelease": false, // 是否在灰度发布中
            "miniAppCompiledPackageId": "2329397929420294", // 小程序版本对应的代码包id
            "isRollback": false, // 是否是回滚的版本
            "organId": "2309190519194821",
            "creatorAccount": "宝树", // 创建者的账户名
            "versionDescription": "e", // ide上传代码包的时候的说明
            "sequence": 1, // 当前版本是当前小程序第几个版本
            "createTime": 1724311579430, // 版本创建时间
            "updateTime": 1724311641102, // 版本更新时间
        },
        "reviewVersion": null, // 审核版信息。字段完全和 onlineVersion 相同
        "trailVersion": { // 体验版信息
            "miniAppCompiledPackageId": "2329600587148550",
            "compiledPackageType": 2,
            "versionEditionStatus": 3,
            "miniAppId": "fc2329386816071045",
            "organId": "2309190519194821",
            "userId": "2309190518932677",
            "createBy": "2309190518932677",
            "creatorAccount": "宝树",
            "sourceFiles": [
            ],
            "versionDescription": "",
            "createTime": 1724323937836,
            "version": "4.0.0",
            "startParams": {
                "pathAndQuery": ""
            },
            "trialVersionTime": 0,
            "frameworkInfo": null,
            "supportFtpkg": true,
            "versionAuditStatus": 0,
            "versionAuditStatusRelatedMiniAppVersionId": ""
        },
        "wechatQrcode": null,
        "uploadedCompiledPackages": true
    },
    "traceid": "1f0ad85c0da74adb9ed5f628ead39731"
}

# 8.2 获取小程序代码包列表

请求URL

GET /api/v1/open/dev/mini-apps/compiled-package/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
miniAppId string 小程序id
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": [
            "compiledPackageType": 1, // 状态: 1:未被设置为体验版, 2:被设置为体验版
            "createBy": "",
            "createTime": 1,
            "creatorAccount": "",
            "frameworkInfo": 1,
            "miniAppCompiledPackageId": "", // 代码包id
            "miniAppId": "", // 小程序id
            "organId": "", // 租户id
            "sourceFiles": {
                "encryptPackages": {
                    "fileMd5": "",
                    "fileUrl": "",
                    "filename": "",
                    "ftpkgSha256": "",
                    "ftpkgUrl": "",
                    "independent": true,
                    "name": "",
                    "pages": [
                        ""
                    ],
                    "root": ""
                },
                "encryptedFileMd5": "",
                "encryptedFileSha256": "",
                "encryptedUrl": "",
                "fileMd5": "",
                "ftpkgSha256": "",
                "ftpkgUrl": "",
                "name": "",
                "packageConfig": {
                    "fields": {
                        "kind": ""
                    }
                },
                "packages": {
                    "fileMd5": "",
                    "fileUrl": "",
                    "filename": "",
                    "ftpkgSha256": "",
                    "ftpkgUrl": "",
                    "independent": true,
                    "name": "",
                    "pages": [
                        ""
                    ],
                    "root": ""
                },
                "sourceFileUrl": "",
                "uploadDate": 1,
                "url": ""
            },
            "startParams": {
                "pathAndQuery": "" // 启动参数
            },
            "trialVersionTime": 1, // 被设置为体验版的时间
            "version": "v1.0.0", // 版本号
            "versionDescription": "desc" // 版本描述
        ],
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 8.3 获取小程序版本审核信息 (通过versionId查询)

请求URL

GET /api/v1/open/dev/mini-apps/audit/versions/:miniAppVersionId

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
miniAppVersionId string 小程序版本id

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "miniAppAuditId": "3246622773920390", //审核id
        "miniAppVersionId": "3246622773920389", //小程序版本id
        "miniAppId": "fc2326558011181381",
        "auditStatus": 2, //审核状态: 2:审核中, 3:审核已撤回, 3:审核已通过, 4:审核已拒绝
        "applyId": "2309202655986885", //申请者id
        "createTime": 1780294530298,
        "updateTime": 1780294530298,
        "miniAppAuditType": 1, //小程序审核方式, 1:小程序开发中心自审核, 2:数字中心审核
        "workflowInstanceId": "3246622773985413", //审核流程实例id
        "nodes": [ //审核节点信息
            {
                "nodeName": "通用审批",
                "nodeId": "3246622774018181"
            }
        ]
    },
    "traceid": "0f4aaf97418445779e1533376c7331b5"
}

# 9. 小程序版本-编辑

# 9.1 更新代码包的页面路径

请求URL

POST /api/v1/open/dev/mini-apps/compiled-package/path-and-query/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppCompiledPackageId string 代码包id
pathAndQuery string 体验版 启动路径

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.2 回滚小程序版本

请求URL

POST /api/v1/open/dev/mini-apps/versions/rollback

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppVersionId string 小程序版本id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.3 取消代码包的体验版

请求URL

POST /api/v1/open/dev/mini-apps/compiled-package/trial/cancel

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppCompiledPackageId string 小程序代码包id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.4 设置代码包为体验版

请求URL

POST /api/v1/open/dev/mini-apps/compiled-package/trial/set

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppCompiledPackageId string 小程序代码包id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.5 下架小程序线上版

请求URL

POST /api/v1/open/dev/mini-apps/versions/unpublish

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppVersionId string 小程序版本id
statusReason string 下架原因

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.6 撤回审核版申请

请求URL

POST /api/v1/open/dev/mini-apps/versions/review/withdraw

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppVersionId string 小程序版本id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.7 提交审核版

请求URL

POST /api/v1/open/dev/mini-apps/versions/review/submit

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
operAdminAudit bool 是否指定数字端admin审核
testInfo object 测试信息
autoPub bool 审核通过后是否自动发布
miniAppCompiledPackageId string 代码包id

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "miniAppVersionId": ""
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 9.8 上架审核版

请求URL

POST /api/v1/open/dev/mini-apps/versions/publish

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
miniAppVersionId string 小程序版本id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 10. 小程序统一认证

# 10.1 开发端-小程序统一登录-获取手机号

请求URL

POST /api/v1/open/dev/mini-apps/unified-auth/phone/get

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
appId string 小程序id
code string

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "phone": ""
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 10.2 开发端-小程序统一登录

请求URL

POST /api/v1/open/dev/mini-apps/unified-auth/login

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
code string
appId string 小程序id

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "accessToken": "",
        "channel": "", // 渠道
        "openId": "",
        "unionId": ""
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 10.3 开发端-小程序统一登录-获取用户信息

请求URL

POST /api/v1/open/dev/mini-apps/unified-auth/userinfo

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
accessToken string
appId string 小程序id
channel string 渠道

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "account": "",
        "email": "",
        "phone": ""
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11. 小程序代码包

# 11.1 小程序代码包上传

请求URL

POST /api/v1/open/dev/mini-apps/compiled-package/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body, formdata格式

字段 类型 含义
file file 上传的代码包文件

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.2 新增小程序代码包对象

请求URL

POST /api/v1/open/dev/mini-apps/compiled-package/build

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

{
    "miniAppId": "fc11111111111",  // 小程序id
    "version": "1.0.4",  // 小程序版本
    "versionRemark": "1.0.4",  // 版本说明
    "username": "pjf01",  // 上传人用户名
    "basicPackVer": "",  // 保留为空
    "packages": [  // 复制ide导出代码包目录的分包目录下的packageConfig.json的内容
        {
            "root": ".",
            "name": "__APP__",
            "pages": [
                "pages/component/index/index",
                "pages/API/index/index",
                "pages/component/view/view",
                "pages/component/scroll-view/scroll-view"
            ],
            "independent": false,
            "filename": "__APP__.zip"
        },
        {
            "root": "packageAPI",
            "name": "34f98750f03c6a2bed1f2f4de2bbb7b9",
            "pages": [
                "packageAPI/pages/get-network-type/get-network-type",
                "packageAPI/pages/on-network-status-change/on-network-status-change",
                "packageAPI/pages/get-system-info/get-system-info",
                "packageAPI/pages/make-phone-call/make-phone-call"
            ],
            "independent": false,
            "filename": "34f98750f03c6a2bed1f2f4de2bbb7b9.zip"
        }
    ],
    "packageConfig": {  // 复制ide导出代码包目录的分包目录下的packageExtConfig.json的内容
        "isLazyLoading": false,
        "entryPagePath": "pages/component/index/index"
    },
    "filesFromNetdisk": [
        {
            "name": "app.zip",  // 整包文件名
            "netdiskID": "2340709818004869"   // 步骤2上传的整包返回的网盘id
        },
        {
            "name": "__APP__.zip",  // 分包1文件名
            "netdiskID": "2340709821396357"  // 步骤2上传的分包1的网盘id
        },
        {
            "name": "34f98750f03c6a2bed1f2f4de2bbb7b9.zip",  // 分包2文件名
            "netdiskID": "2340709822559621"  // 步骤2上传的分包2的网盘id
        }
    ]
}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.3 小程序插件logo上传

请求URL

POST /api/v1/open/dev/plugin/logo/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body, formdata格式

字段 类型 含义
file file 上传的代码包文件

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "netdiskID": "" // 网盘id
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.4 新增小程序插件

请求URL

POST /api/v1/open/dev/plugins/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

{
    "name": "视频插件",  // 插件名称
    "imageNetDiskId": "2340709818004869",  // 插件图片网盘id,使用11.3接口上传得到
    "introduce": "播放视频的插件",  // 插件介绍
    "devDocAddr": "http://wwww......"  // 插件开发文档地址
}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "createTime": 1745827165000, // 创建时间
        "creatorAccount": "zhangsan", // 创建人
        "devDocAddr": "http://wwww......", // 插件开发文档地址
        "imageNetDiskId": "2340709818004869", // 插件图片网盘id
        "introduce": "播放视频的插件", // 插件介绍
        "name": "视频插件", // 插件名称
        "organId": "", // 组织id
        "organName": "", // 组织名称
        "platform": 1, // 1:开发端,2:运营端
        "pluginId": "", // 插件id
        "pubTime": 0, // 发布时间
        "updateTime": 0 // 更新时间
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.5 小程序插件代码包上传

请求URL

POST /api/v1/open/dev/plugin/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body, formdata格式

字段 类型 含义
file file 上传的代码包文件

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "netdiskID": "" // 网盘id
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.6 创建小程序插件版本

请求URL

POST /api/v1/open/dev/plugins/versions/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

{
    "pluginId": "2340709818004869",  // 插件id,使用11.4接口得到
    "version": "1.0.0",  // 插件版本
    "updateLog": "播放视频的插件",  // 插件版本日志说明
    "codePackageUrl": "2340709818004869",  // 插件代码包网盘id,使用11.5接口得到
    "ext": "" // 扩展内容
}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.7 查询小程序插件版本信息

请求URL

GET /api/v1/open/dev/plugins/version/get

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
pluginId string 小程序插件id
version string 插件版本

示例请求

/api/v1/open/dev/plugins/version/get?pluginId=2340709818004869&version=1.0.0

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "codePackageUrl": "", // 插件代码包网盘id
        "createBy": "", // 创建者id
        "createTime": 0, // 创建时间
        "creatorAccount": "", // 创建者账号
        "pluginId": "", // 插件id
        "pluginVersionId": "", // 插件版本id
        "pubTime": 0, // 发布时间
        "sequence": 0, // 序列号
        "updateLog": "", // 插件更新日志
        "updateTime": 0, // 更新时间
        "version": "" // 插件版本
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 11.8 下载小程序插件代码包

请求URL

GET /api/v1/open/dev/plugin/code/download/:netdiskId

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
netdiskId string 插件代码包网盘id

示例请求

/api/v1/open/dev/plugin/code/download/2340709818004869

示例响应

文件内容

# 12. 小程序消息订阅

# 12.1 获取当前小程序可用的模板

请求URL

GET /api/v1/open/dev/mini-apps/message-delivery/templates/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
miniAppId string 小程序id

示例请求

/api/v1/open/dev/mini-apps/message-delivery/templates/list?miniAppId=fcxxxx

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": [
            {
                "messageDeliveryTemplateId": "12121", // 模板id
                "subscribeType": 1, // 订阅类型 1=一次性 2=永久
                "title": "template title", // 模板标题
                "formatText": "您的订单将于{{orderExpectTime}}时候送达", // 消息模板
                "link": "https://xx.com",
                "desc": "this is desc",
                "status": 1, // 状态 1=启用 2=禁用 3=数字中心-禁用
                "createTime": 1745827165000,
                "update_time": 1745827165000,
                "params": [{
                    "keyword": "orderExpectTime", // 变量关键词
                    "type": "6", // 参数类型 1=字母 2=符号 3=字符串 4=数字 5=事物 6=时间 7=金额 8=状态
                    "paramSample": "2025/05/01"
                }]
            }
        ]
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 12.2 推送小程序消息模板

请求URL

POST /api/v1/open/dev/mini-apps/message-delivery/notify/push

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

{
    "miniAppId": "fcxxxxx", // 发起推送的小程序 id
    "openId": "2696151317266949", // 用户在小程序下的唯一标识 openId,用于标识出是哪个用户。获取方式参考 /api/v1/open/dev/mini-apps/unified-auth/login 接口
    "templates": [{
        "messageDeliveryTemplateId": "1119892", // 模板 id
        "channelCodes": ["notify", "sms"], // 推送的应用渠道
        "params": [
            {
                "keyword": "orderExpectTime", // 模板的变量
                "value": "2025/05/01" // 模板变量对应的值
            }
        ]
    }]
}

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 13. 应用-查看

# 13.1 获取宿主应用列表

请求URL

GET /api/v1/open/dev/host-apps/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "bundleIdPublic": true, // bundleId是否对其他团队可见
            "createTime": 1, // 创建时间
            "desc": "", // 描述
            "hostAppId": "", // 宿主应用id
            "hostAppPublic": true, // 宿主应用是否对其他团队可见
            "logo": "", // 宿主应用logo
            "name": "", // 名称
            "organId": "", // 租户id
            "organName": "", // 租户名称
            "owner": "", // 应用所属者
            "platform": 1, // 应用平台 1=开发中心 2=数字中心
            "source": 1, // 来源 1=开发端当前组织自有应用 2=开发端其他组织创建的应用 3=数字中心
            "status": 1, // 状态 1=启用 2=停用
            "updateTime": 1 // 更新时间
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 13.2 开发端-获取宿主应用配置

请求URL

GET /api/v1/open/dev/host-apps/config

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 无

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "activeBundleIdLimitPerHostApp": 1, // 每个宿主应用可以拥有的bundle数量(状态可用)
        "bundleIdLimitPerHostApp": 1, // 每个宿主应用可以拥有的bundle数量(状态不限)
        "canConfiguredHostAppPublic": true, // 是否可以配置宿主应用是否对其他团队可见
        "remainCreateHostAppCount": 1 // 还可以创建的应用数量
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 14. 应用-编辑

# 14.1 创建应用

请求URL

POST /api/v1/open/dev/host-apps/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
desc string 描述
hostAppPublic bool 宿主应用是否对其他团队可见
logo string logo
name string 名称
owner string 所属企业
bundleIdPublic bool bundleId是否对其他团队可见

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "hostAppId": "" // 应用id
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 14.2 更新应用

请求URL

POST /api/v1/open/dev/host-apps/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
logo string logo
name string 名称
owner string 所属企业
bundleIdPublic bool bundleId是否对其他团队可见
desc string 描述
hostAppId string 宿主应用id
hostAppPublic bool 宿主应用是否对其他团队可见

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 14.3 关联应用和小程序

请求URL

POST /api/v1/open/dev/host-apps/mini-apps/associate

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
hostAppId string 宿主应用id
miniAppIds string[] 小程序id列表

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 14.4 更新应用状态

请求URL

POST /api/v1/open/dev/host-apps/change-status

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
status int 状态 0-全部 1=启用 2=停用
hostAppId string 应用id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 14.5 取消关联应用和小程序

请求URL

POST /api/v1/open/dev/host-apps/mini-apps/disassociate

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
hostAppId string 宿主应用id
miniAppIds string[] 小程序id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

请求URL

POST /api/v1/open/dev/host-apps/logo/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body form-data

字段 类型 含义
file file 文件

示例响应


{
    "error": "",
    "errcode": "OK",
    "data": {
        "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段
    },
    "traceid": "c3d1cf08389947dab3623125006eb39c"
}

# 15. 自定义API-查看

# 15.1 获取应用API列表

请求URL

GET /api/v1/open/dev/host-apps/apis/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
apiCategory string 自定义api分类。可选参数,用于过滤
hostAppId string 应用id
apiScope int api范围 1--公有 2--私有
state int api状态 0=全部 1=已禁用 2=已启用
searchText string 模糊搜索文本
pageNo int 页码。从1开始
pageSize int 每页数量

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "apiCategory": [ // 分类
                ""
            ],
            "apiDescription": "", // 描述
            "apiManageId": "", // api id
            "apiName": "", // api 名称
            "apiScope": 1, // api范围 1--公有 2--私有
            "createTime": 1, // 创建时间
            "hostAppId": "", // 所属的应用id
            "state": 1, // api状态 0=全部 1=已禁用 2=已启用
            "updateTime": 1 // 更新时间
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 16. 自定义API-编辑

# 16.1 开发端-更新宿主应用API

请求URL

POST /api/v1/open/dev/host-apps/apis/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
apiCategory string array api类型
apiDescription string api 描述
apiManageId string api唯一id
apiName string api名称
apiScope object api范围 1--公有 2--私有

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 16.2 开发端-启用/禁用 自定义API

请求URL

POST /api/v1/open/dev/host-apps/apis/change-status

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
apiManageIds string[] api id列表
state int 可用状态 1--已停用 2--正常

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 16.3 开发端-创建宿主应用API

请求URL

POST /api/v1/open/dev/host-apps/apis/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
hostAppId string 应用id
apiCategory string[] api类别
apiDescription string api 描述
apiName string api名称
apiScope int api范围 1--公有 2--私有

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "apiCategory": [
            ""
        ],
        "apiDescription": "",
        "apiManageId": "",
        "apiName": "",
        "apiScope": 1,
        "createTime": 1,
        "hostAppId": "",
        "state": 1,
        "updateTime": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 17. 自定义菜单-查看

# 17.1 开发中心-获取自定义菜单分类列表

请求URL

GET /api/v1/open/dev/host-apps/custom-menus/categories

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 无

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": [
            ""
        ]
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 17.2 开发端-获取宿主应用自定义菜单列表

请求URL

GET /api/v1/open/dev/host-apps/custom-menus/list

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: query

字段 类型 含义
hostAppId string 应用id

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "items": {
            "category": [ // 菜单分类
                ""
            ],
            "createTime": 1, // 创建时间
            "customMenuId": "", // 菜单id
            "darkImageUrl": "", // 菜单暗黑模式logo
            "hostAppId": "", // 所属应用id
            "imageUrl": "", // 菜单logo
            "infoId": "", // 菜单info id
            "isSdkBuiltin": 1, // 是否是内置菜单 1=否 2=是
            "name": "", // 菜单名称
            "scope": 1, // 范围  1--公有  2--私有
            "sortNum": 1, // 菜单排序
            "state": 1, // 状态  1--已禁用  2--已启用
            "updateTime": 1 // 更新时间
        },
        "total": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 18. 自定义菜单-编辑

# 18.1 开发端-禁用/启用自定义菜单

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/change-status

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
customMenuIds string[] 自定义菜单唯一id列表
state int 状态 1--已禁用 2--已启用

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 18.2 开发端-更新宿主应用自定义菜单

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/update

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
state Int 状态 1--已禁用 2--已启用
category string[] 图标分类
customMenuId string 菜单id
darkImageUrl string 暗黑模式图片
imageUrl string 图片
infoId string 唯一id
name string 名称
scope object 范围 1=公有 2=私有

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 18.3 开发端-创建宿主应用自定义菜单

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/create

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
scope int 范围 1=公有 2=私有
category string[] 图标分类
darkImageUrl string 暗黑图片网盘id
hostAppId string
imageUrl string 图片网盘id
infoId string
name string

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "category": [
            ""
        ],
        "createTime": 1,
        "customMenuId": "",
        "darkImageUrl": "",
        "displayLang": "",
        "hostAppId": "",
        "imageUrl": "",
        "infoId": "",
        "isSdkBuiltin": 1,
        "name": "",
        "scope": 1,
        "sortNum": 1,
        "state": 1,
        "updateTime": 1
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 18.4 开发端-排序宿主应用自定义菜单

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/sort

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
customMenuId string 菜单id

示例响应


{
    "errcode": "",
    "error": "",
    "data": {},
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

# 18.5 开发端-检查宿主应用自定义菜单是否存在

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/check-exist

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数 参数位置: body

字段 类型 含义
checkType int 检查类型 1=name 2=infoId
customMenuId string
hostAppId string
text string 检查的文本。根据checkType来决定

示例响应

{
    "error": "",
    "errcode": "OK",
    "data": {
        "exist": true
    },
    "traceid": "a17b2855affb46c08485937aca8243ef"
}

请求URL

POST /api/v1/open/dev/host-apps/custom-menus/logo/upload

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}
Content-Type multipart/form-data

请求参数 参数位置: body form-data

字段 类型 含义
file file 文件

示例响应


{
    "error": "",
    "errcode": "OK",
    "data": {
        "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段
    },
    "traceid": "c3d1cf08389947dab3623125006eb39c"
}

# 19. 分析

# 19.1 数据看板-访问次数

请求URL

GET /api/v1/open/dev/stat/basic/billboard/total/pv

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

示例响应


{
  "hasData": true,
  "items": [
    {
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "formattedVal": "1,000",
      "val": 1000
    }
  ],
  "totalCount": 30
}

# 19.2 数据看板-获取小程序统计的折线图

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/pillar

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 灰度结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 灰度开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.activeDeviceCount integer 活跃设备数
items.date string 日期
items.dateMs integer 日期时间戳(毫秒)
items.deviceCount integer 设备数
items.duration integer 使用时长(秒)
items.newDeviceCount integer 新增设备数
items.openCount integer 打开次数
items.val integer 数值
maxTotal integer 最大总数

示例响应

{
  "items": [
    {
      "activeDeviceCount": 100,
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "deviceCount": 500,
      "duration": 3600,
      "newDeviceCount": 50,
      "openCount": 200,
      "val": 1000
    }
  ],
  "maxTotal": 5000
}

# 19.3 数据看板-平均访问时长总和

请求URL

GET /api/v1/open/dev/stat/basic/billboard/total/avg-duration

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
hasData boolean 是否有数据
items array 数据项列表
items.date string 日期
items.dateMs integer 日期时间戳(毫秒)
items.formattedVal string 格式化后的值
items.val integer 数值
totalCount integer 总数量

示例响应

{
  "hasData": true,
  "items": [
    {
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "formattedVal": "1,000",
      "val": 1000
    }
  ],
  "totalCount": 30
}

# 19.4 数据看板-活跃设备总和

请求URL

GET /api/v1/open/dev/stat/basic/billboard/total/active-device

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
hasData boolean 是否有数据
items array 数据项列表
items.date string 日期
items.dateMs integer 日期时间戳(毫秒)
items.formattedVal string 格式化后的值
items.val integer 数值
totalCount integer 总数量

示例响应

{
  "hasData": true,
  "items": [
    {
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "formattedVal": "1,000",
      "val": 1000
    }
  ],
  "totalCount": 30
}

# 19.5 数据看板-UV总和

请求URL

GET /api/v1/open/dev/stat/basic/billboard/total/uv

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
hasData boolean 是否有数据
items array 数据项列表
items.date string 日期
items.dateMs integer 日期时间戳(毫秒)
items.formattedVal string 格式化后的值
items.val integer 数值
totalCount integer 总数量

示例响应

{
  "hasData": true,
  "items": [
    {
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "formattedVal": "1,000",
      "val": 1000
    }
  ],
  "totalCount": 30
}

# 19.6 数据看板-宿主应用来源

请求URL

GET /api/v1/open/dev/stat/basic/billboard/host-app

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "App名称",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.7 数据看板-地域分布

请求URL

GET /api/v1/open/dev/stat/basic/billboard/country/region

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "北京",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.8 设备数据-获取小程序留存统计

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/retention

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.date string 日期
items.dateMs integer 日期时间戳(毫秒)
items.five integer 5日留存
items.formattedVal string 格式化后的值
items.four integer 4日留存
items.fourteen integer 14日留存
items.newUserCount integer 新增用户数
items.one integer 次日留存
items.seven integer 7日留存
items.six integer 6日留存
items.thirty integer 30日留存
items.three integer 3日留存
items.two integer 2日留存
items.val integer 数值

示例响应

{
  "items": [
    {
      "date": "2024-01-01",
      "dateMs": 1704067200000,
      "five": 100,
      "formattedVal": "1,000",
      "four": 120,
      "fourteen": 80,
      "newUserCount": 1000,
      "one": 500,
      "seven": 200,
      "six": 150,
      "thirty": 50,
      "three": 300,
      "two": 400,
      "val": 1000
    }
  ]
}

# 19.9 设备数据-获取小程序设备分布

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/device

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "iOS",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.10 设备数据-获取小程序屏幕分辨率分布

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/screen

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "1920x1080",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.11 设备数据-获取小程序手机品牌分布

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/brand

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "华为",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.12 设备数据-获取小程序SDK版本分布

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/sdk-version

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "v3.0.0",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 19.13 获取小程序基础包版本分布

请求URL

GET /api/v1/open/dev/stat/basic/mini-app/basic-pack-version

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
endTime integer 否 query 结束时间
miniAppId string 否 query 小程序id
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "v1.0.0",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 9.14 数据看板-区域应用来源分布

请求URL

GET /api/v1/open/dev/stat/basic/billboard/region

请求头部

Header 值
Authorization Bearer {PersonalAccessToken}

请求参数

参数名 类型 必填 位置 描述
country string 否 query 国家
devOrganIds string 否 query 组织ids
endTime integer 否 query 结束时间
isRunPlay boolean 否 query 是否run play
miniAppIds string 否 query 小程序ids
startTime integer 否 query 开始时间

响应参数

参数名 类型 描述
items array 数据项列表
items.formattedVal string 格式化后的值
items.name string 名称
items.proportion string 占比
items.value integer 数值

示例响应

{
  "items": [
    {
      "formattedVal": "1,000",
      "name": "华东",
      "proportion": "50%",
      "value": 1000
    }
  ]
}

# 通用错误码

以下定义了一些接口之间通用的错误码字典,用于接口返回值判断和错误排查

errcode 错误码 描述
OK 成功
ECODE_PARAM_ERR 参数错误。请求的入参不合法,检查请求入参
ECODE_UNAUTHORIZED 未认证。无法识别到用户,检查当前的 PersonalAccessToken 是否正确
ECODE_FORBIDDEN 未授权。当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口
ECODE_SERVER_ERR 服务器内部错误。预期外的错误,请携带返回中的traceid向系统管理员反馈
ECODE_LICENSE_NOT_SUPPORT_OPEN_API_ERROR 当前license不支持open-api功能,无法使用
OPEN_API_ACCESS_TOKEN_NOT_FOUND_ERR 当前的 PersonalAccessToken 不存在
ECODE_PERSONAL_ACCESS_TOKEN_CROSS_PLATFORM_ERROR 使用开发中心或者数字中心的 PersonalAccessToken ,访问另一端的接口。
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE 无法识别到用户,检查当前的 PersonalAccessToken 是否正确
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE 当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口
© FinClip with ❤ , Since 2017