Skip to content

应用市场发布 ​

自建应用只有本组织能用;发布到市场后,其他组织的管理员可以浏览、安装、 单独授权——一次开发,多组织复用。

1. 上架:用途声明 + 平台审核 ​

在应用设置 →「提交审核」,流程是三段状态机:

private ──提交审核──▶ pending_review ──平台批准──▶ published
   ▲                        │
   └────────平台驳回────────┘   (改完可重新提交,回到 pending_review)
  • 前提:页面地址必须是 https://(提交审核时强制校验,本地 http 仅限 调试期的私有应用)。
  • 提交审核前必须为每个已勾选的能力(scope)填写一句用途说明(≤300 字符, 在应用编辑页填写)——具体说明"为什么需要",而不是泛泛地写"需要该权限"。 这些说明会展示给平台审核人员,批准后也会展示在市场详情里,供安装方管理员 在「权限」页参考。
  • 提交后进入 pending_review:应用不会出现在市场列表里,直到平台审核 通过。被驳回时能看到驳回理由,修改后可重新提交。
  • 可见范围(audience)(跟提交审核一起选,批准后生效):
    • 留空 = 所有组织可见
    • 指定名单 = 只有命中的人/组织/团队能看到并安装:
      • user_id —— 某个人
      • org:<组织id> —— 该组织全体成员(要求你是该组织成员)
      • team:<团队id> —— 该团队成员(要求你是其所在组织成员)

已上架后扩大能力范围会被自动下架

上架后如果你修改了 scopes(增加能力)或 homepage_url(页面地址),应用 会自动降级回 private 并要求重新提交审核——防止"先用很小的能力范围过审, 上架后再悄悄扩大范围"这条绕过审核的路径。已安装该应用的组织会立即失去访问 (打开应用/调用开放 API 均报应用不存在),直到你重新提交并再次获批。只改 简介/图标/绑定的知识库数据库白名单不会触发这个降级。

2. 安装 ≠ 授权 ​

这是市场模型的核心,向你的用户讲清楚:

动作谁做效果
安装安装方组织管理员应用出现在他们的工作台,成员可免登打开
授权安装方组织管理员勾选的能力才对他们的组织生效

安装后默认零授权(仅免登)。影响安装方组织成员的能力需要在「权限」里 逐项勾选:contacts(通讯录)、im(消息)、ai_tools(成员 AI 里的工具)、 local(成员设备上的本地能力);而 ai/kb/db 消耗/访问的都是你(发布方) 的资源,不受安装方授权约束(见 能力说明)。

所以应用后端调用开放 API 时要优雅处理 403:提示用户"请联系贵组织管理员 在应用权限里开启 xx 能力",而不是报错崩溃。

3. 让安装方找到你 ​

市场列表展示:应用名、图标、简介、安装数、发布组织。把图标和简介当产品 首页来写——一句话说清"这个应用帮我做什么"。

4. 生命周期事件 ​

上架后建议订阅事件,app.installed / app.uninstalled / app.scopes.granted 会推送到你的后端——做新客引导、账期统计、授权变更感知 都靠它们。

5. 停用 / 下架 / 删除的影响 ​

你的操作对安装方对开放 API
停用应用(status: disabled)工作台不再显示(管理员仍可见以便卸载)authCode 停发;已有 app token 随过期失效
下架(market_status 离开 published,含手动改回 private 与因改 scopes/homepage_url 触发的自动降级)立即从工作台消失(非管理员成员看不到,管理员仍见)、无法再打开应用或换新 authCode不受影响的已有 app token 在过期前仍可用,但该应用已不再是"已安装"状态
轮换密钥不变所有旧 token 即时失效,安装方后端若自配了你的 secret 需更新(市场应用一般不需要)
删除应用安装关系一并删除凭证即时失效

演进策略

页面内容更新无需任何操作(客户端每次打开加载的就是你的最新页面); 接口行为变更请遵循更新日志的兼容性约定并给安装方留迁移期。

机灵兔开放平台 · 组织应用开发者文档