# 前言
开发中心 OpenAPI 是 FinClip 服务端的开放出来的一些核心链路的接口。允许您以编程方式与 FinClip 服务端交互。用于自动执行任务、与其他工具集成并创建自定义工作流程等
# 快速开始
- 在开发中心的个人中心中,选择创建 Personal Access Token
- 勾选当前 Token 需要具备的权限,并创建。注意:请妥善保存创建生成的 Access Token,后续无法找回,只能重置
- 选择下面任意的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"
}
# 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"
}
# 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": "", // 角色名
"role_id": "", // 角色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/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": "", // logo 日志
"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"
}
# 7. 小程序-编辑
# 7.1 创建小程序
请求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"
}
# 7.4 上传小程序logo
请求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"
}
# 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"
}
# 12. 应用-查看
# 12.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"
}
# 12.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"
}
# 13. 应用-编辑
# 13.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"
}
# 13.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"
}
# 13.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"
}
# 13.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"
}
# 13.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"
}
# 13.5 上传应用logo
请求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"
}
# 14. 自定义API-查看
# 14.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"
}
# 15. 自定义API-编辑
# 15.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"
}
# 15.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"
}
# 15.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"
}
# 16. 自定义菜单-查看
# 16.1 开发中心-获取自定义菜单分类列表
请求URL
GET /api/v1/open/dev/host-apps/custom-menus/categories
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 无
示例响应
{
"error": "",
"errcode": "OK",
"data": {
"items": [
""
]
},
"traceid": "a17b2855affb46c08485937aca8243ef"
}
# 16.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"
}
# 17. 自定义菜单-编辑
# 17.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"
}
# 17.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"
}
# 17.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"
}
# 17.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"
}
# 17.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"
}
# 17.6 上传自定义菜单logo
请求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"
}
# 通用错误码
以下定义了一些接口之间通用的错误码字典,用于接口返回值判断和错误排查
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 的对应的权限,不足以访问当前正在访问的接口 |