跳到主要内容

发起安装

发起应用安装,生成签名并跳转到第三方应用。

接口说明​

属性值
请求方式POST
请求路径/im-user/api/v1/apps/install/initiate
鉴权方式User Token
说明

此接口由 IM 系统内部调用,第三方应用无需直接调用。当用户在 IM 中点击"安装应用"时,IM 会自动调用此接口并跳转到第三方应用的 installRedirectUri。

请求头​

Authorization: Bearer {userAccessToken}
Content-Type: application/json

请求参数​

参数类型必填说明
appIdnumber是应用 ID
workspaceIdnumber是工作空间 ID
statestring是状态参数(防 CSRF,随机字符串)

请求示例​

{
"appId": 123,
"workspaceId": 1001,
"state": "random_state_string"
}

响应参数​

参数类型说明
redirectUrlstring跳转 URL(第三方应用的绑定页面)
appIdnumber应用 ID
appNamestring应用名称
workspaceIdnumber工作空间 ID
workspaceNamestring工作空间名称
statestring状态参数
tokenExpiresInnumber令牌有效期(秒),默认 31536000(1年)
signTimestampnumber签名时间戳(秒级)
signstring签名值,用于第三方应用验证请求合法性

响应示例​

{
"code": 200,
"data": {
"redirectUrl": "https://your-app.com/api/im/install/callback?workspace_id=1001&workspace_name=%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%A9%BA%E9%97%B4&app_id=123&initiator_user_id=456&timestamp=1736380800&sign=a1b2c3d4...",
"appId": 123,
"appName": "OA办公系统",
"workspaceId": 1001,
"workspaceName": "测试工作空间",
"state": "random_state_string",
"tokenExpiresIn": 31536000,
"signTimestamp": 1736380800,
"sign": "a1b2c3d4e5f6789..."
}
}

跳转参数​

IM 跳转到 installRedirectUri 时,会携带以下 URL 参数:

参数类型说明
workspace_idnumberIM 工作空间 ID
workspace_namestringIM 工作空间名称(URL 编码)
app_idnumber应用 ID
initiator_user_idnumber发起安装的 IM 用户 ID
timestampnumber签名时间戳(秒级,10位数字)
signstring签名值(64位小写十六进制字符串)

跳转 URL 示例​

https://your-app.com/api/im/install/callback
?workspace_id=1001
&workspace_name=%E6%B5%8B%E8%AF%95%E5%B7%A5%E4%BD%9C%E7%A9%BA%E9%97%B4
&app_id=123
&initiator_user_id=456
&timestamp=1736380800
&sign=3f8c2a1b4d5e6f7890abcdef1234567890abcdef1234567890abcdef12345678
建议

建议将 installRedirectUri 配置为后端接口地址,而非前端页面。后端可以安全地保存签名信息到 Session,并根据业务逻辑决定重定向到哪个前端页面。

错误码​

错误码说明解决方案
400appId不能为空确保传递了 appId 参数
400workspaceId不能为空确保传递了 workspaceId 参数
400state不能为空确保传递了 state 参数
400应用不存在检查 appId 是否正确
400工作空间不存在检查 workspaceId 是否正确
400应用未配置回调地址在开发者中心配置 installRedirectUri
401Token 无效或已过期用户需要重新登录 IM

下一步​