跳到正文

用户与客户空间 ​

登录后读取 open_id、union_id 和客户空间。平台自动生成标识和默认个人空间,无需配置用户组或额外申请 API Subscription。

请求 ​

POST ${GOODVISION_API_BASE}/open-platform/v1/user-context:resolve

应用服务端使用当前应用的用户 Access Token 调用,首次请求发送 {}:

bash
curl --request POST \
  --url "${GOODVISION_API_BASE}/open-platform/v1/user-context:resolve" \
  --header "Authorization: Bearer ${GOODVISION_USER_ACCESS_TOKEN}" \
  --header 'Content-Type: application/json' \
  --data '{}'
参数位置必填性说明
AuthorizationHeader🔴 必填Bearer <USER_ACCESS_TOKEN>;当前应用的用户 Token,不能使用应用身份 Token
Content-TypeHeader🔴 必填application/json
JSON 请求体Body🔴 必填首次进入发送 {},无需填写用户或空间 ID
organization_idBody可选省略时自动准备或复用个人空间;只在用户主动选择已有客户空间时传入,平台重新核验成员关系

选择已有空间时发送 {"organization_id":"<SELECTED_CUSTOMER_SPACE_UUID>"}。不传应用、用户或权限字段,也不添加组织 Header 或 Query 参数。

响应 ​

下表均为平台返回的字段,不是开发者需要填写的请求参数。

字段用途
application_id、environment核对是否属于当前应用及环境
user.open_id当前应用内的用户关联;可以作为应用自己的用户键
user.union_id同开发者、同环境多个应用中的同一用户关联
space.organization_id当前客户空间;用于后续业务范围,用户不用填写
space.membership_id当前用户在该空间的成员关联
space.display_name空间展示名称;不能按名称判断权限
space.kindpersonal 为默认个人入口;selected 表示显式选择,不是团队分类
resolved_at、expires_at解析时间和失效时间,最长五分钟

下载响应 JSON Schema。服务端核对响应的应用、环境、当前空间及有效时间,按业务需要重新读取。响应为 no-store;普通输出不包含内部身份 ID 或任何 Secret。

open_id 与 union_id ​

平台自动生成 OpenID(open_id)与 UnionID(union_id),从响应的 user 中读取:

同一用户进入open_idunion_id
同开发者、同环境的应用 A 与 B不同相同
同一应用,切换客户空间不变不变
不同开发者或环境隔离隔离

应用转移后不自动合并历史用户。用户标识不授予产品或付费权益。

故障恢复 ​

状态处理
400修正请求,只保留可选的客户空间选择
401重新登录当前应用
403停止当前空间操作,提示应用或成员关系不可用并确认选择
503保留已验证登录和原操作,显示重试入口,有界重新读取

失效的空间不会自动改成另一个空间。不要把开发者企业当客户范围兜底,也不要因 503 循环重新登录。身份与成员关系不授予产品、付费、额度或平台权限。

成员相关的 oem.access_context.changed.v1 事件用 data.subject_id 对应 space.membership_id;订阅用应用、环境、客户空间和 subscription ID 关联。它们不能与 sub、open_id 或 union_id 互换。详见多应用、用户与事件接入。

开发者文档。第三方接入不需要内部运营平台权限。