4.7 KiB
4.7 KiB
IM system 租户接口冒烟记录 - 2026-09-16
环境
- Base URL:
https://api-test.118im.com - Tenant Code:
system - API Key: 新测试环境 Key,接口解析返回的 WebSocket 地址可用
- 测试账号: 本次临时注册
s832453991/17832453991 - 测试时间:
2026-09-16 11:40 CST
结论
system 租户登录、注册、WebSocket 登录和大部分登录后接口可用;本轮确认 1 个确定后端问题:
GET /v1/im/me/privacy 在 system 租户下返回 500 INTERNAL_ERROR。该问题已在 2026-09-16 12:27 CST 通过补齐 meeting_im.im_user_privacy_settings.group_invite_verification 字段修复,复测返回 200。
初步根因是 system 租户实际业务库 meeting_im 的 im_user_privacy_settings 表缺少 group_invite_verification 字段,而当前代码查询和更新都会使用该字段。
确认通过
| 接口 | 结果 |
|---|---|
POST /v1/im/tenants/resolve |
200,返回 tenant.code=system |
POST /v1/im/auth/verification-codes |
200 |
POST /v1/im/auth/verification-codes/{challenge_id}/verify |
200,固定验证码 123456 可用 |
WebSocket hi |
201 |
WebSocket acc user:new |
200,新账号创建成功 |
WebSocket login scheme=token |
200 |
WebSocket sub me |
200 |
GET /v1/im/bootstrap |
200 |
GET /v1/im/me |
200 |
GET /v1/im/me/profile |
200 |
GET /v1/im/security/realname |
200 |
GET /v1/im/workbench |
200,返回 enterprise.tenant_code=system |
GET /v1/im/organization/departments |
200 |
GET /v1/im/organization/members?limit=20 |
200 |
GET /v1/im/organization/search?q=1&limit=20 |
200 |
GET /v1/im/attendance/config |
200 |
GET /v1/im/attendance/records?limit=20 |
200 |
GET /v1/im/meeting-notes?limit=20 |
200 |
GET /v1/im/meetings?limit=20 |
200 |
GET /v1/im/reports/abuse/reasons?target_type=user |
200 |
GET /v1/im/reports/abuse/reasons?target_type=group |
200 |
GET /v1/im/reports/daily/statistics?date=2026-09-16 |
200 |
GET /v1/im/reports/daily?limit=20 |
200 |
GET /v1/im/reports/monthly/statistics?month=2026-09 |
200 |
GET /v1/im/reports/monthly?limit=20 |
200 |
GET /v1/im/executive-mailbox/config |
200 |
GET /v1/im/feedback/config |
200 |
GET /v1/im/app/releases/latest?platform=ios¤t_version=1.0.0&channel=stable |
200 |
GET /v1/im/search/conversations?q=&limit=20 |
200 |
GET /v1/im/forward-targets?q=&limit=20 |
200 |
GET /v1/im/system-notifications?limit=20 |
200 |
GET /v1/im/favorites?limit=20 |
200 |
GET /v1/im/groups?limit=20 |
200 |
GET /v1/im/calls?limit=20 |
200 |
问题记录
P0: GET /v1/im/me/privacy 返回 500
请求:
GET /v1/im/me/privacy
X-Tenant-Code: system
X-IM-Schema: 1
Authorization: Bearer <system 用户 token>
响应:
{
"code": 90000,
"reason": "INTERNAL_ERROR",
"message": "internal error"
}
数据库检查:
hotgo.im_tenant中system租户:db_name=meeting_im,db_dsn=''。meeting_im.im_user_privacy_settings当前字段包含:iduser_idadd_me_methodsprofile_visibilitylast_seen_visibilityread_receiptsversioncreated_atupdated_at
tinode.im_user_privacy_settings比meeting_im多一个字段:group_invite_verification
代码使用点:
/Users/youshunlai/go_workspace/im_server/server/db/mysql/tenant_adapter.go:6613/Users/youshunlai/go_workspace/im_server/server/db/mysql/tenant_adapter.go:7194
判断:
system 租户库 meeting_im 未执行最新隐私设置表结构迁移。当前代码查询 group_invite_verification 字段时会在该库报 SQL 错误,最终 HTTP 统一包装成 500 INTERNAL_ERROR。
处理结果:
- 测试库
mysql.118im.com:30306/tinode已有该字段。 - 测试库
mysql.118im.com:30306/meeting_im已补字段。 - 本地库
127.0.0.1:3306/tinode已补字段。 - 本地库
127.0.0.1:3306/meeting_im已补字段。 - 复测
GET /v1/im/me/privacy返回 200,响应包含group_invite_verification:false。
误测排除
以下接口第一次测试时返回 400/405,是因为请求参数或方法不完整,不属于本轮确认问题:
GET /v1/im/reports/abuse/reasons:需要target_type=user|group。GET /v1/im/reports/daily/statistics:需要date=YYYY-MM-DD。GET /v1/im/reports/monthly/statistics:需要month=YYYY-MM。GET /v1/im/reports/daily/reminders:实现为POST,GET 返回 405 属正常方法限制。
额外注意
旧 API Key 访问 system 或 default 都返回 403 API_KEY_REQUIRED;新测试环境应使用租户解析接口返回的新 Key 和 WebSocket 地址。