IM 即时通讯
实现圈组消息收发
更新时间: 2023/03/08 09:54:31
本文介绍在不考虑用户权限控制的场景下,如何通过 IM 服务端 API,快速实现圈组的消息收发。
圈组的用户权限控制通过身份组相关 API 实现。 服务端的身份组相关 API 的介绍请参见身份组管理。
前提条件
- 已在云信控制台创建应用,获取 App key 和 App Secret。
- 已注册云信 IM 账号。
- 已了解服务端 API 使用流程。
实现流程
在以下流程中,我们以用户A 和用户B 在圈组的消息交互场景为例。
- 场景1
- 场景2
步骤1:用户登录圈组
用户A 和用户 B 调用 qchat/requestAddr.action
请求客户端接入地址,从而登录圈组。
步骤2:用户A 创建服务器
用户A 调用 qchat/createServer.action
创建一个圈组服务器。
步骤3:用户B 加入服务器
用户B 可以通过被用户A 邀请加入服务器(场景1),也可以主动申请加入用户A 创建的服务器(场景2)。
场景1
- 用户A 调用
qchat/inviteServerMember.action
邀请用户 B。 - 用户B 调用
qchat/acceptServerInvite.action
接受用户A 的邀请,加入用户A 创建的服务器。
创建服务器时,可将 inviteMode
(邀请模式)设为“邀请不需要同意”。本流程以 inviteMode
设为“邀请需要同意”为例进行介绍。
场景2
- 用户B 调用
qchat/applyServer.action
申请加入用户A 创建的服务器。 - 用户A 调用
qchat/acceptServerApply.action
接受用户B 的申请,用户B 加入服务器。
创建服务器时,可将 applyMode
(申请模式)设为“申请不需要同意”。本流程以 applyMode
(申请模式)设为“申请需要同意”为例进行介绍。
步骤4: 用户A 创建频道
用户A 调用 qchat/createChannel.action
创建频道。
步骤5: 确保频道对用户B 可见
- 如上一步中用户A 创建的是私密频道,那么用户A 需调用
qchat/updateWhiteBlackIdentifyUser.action
将用户B 加入频道白名单,否则该频道将对用户B 不可见,从而导致无法实现频道内消息收发。 - 如用户A 创建的是公开频道,那么请跳过这一步。
圈组的消息收发,只能在频道维度进行。
步骤6: 实现消息收发
用户B 调用 qchat/sendMsg.action
在频道内发送消息。IM 服务端收到用户B 的请求后,将用户B 发送的消息投递至用户A。
圈组支持的消息类型说明见下表。
消息类型 | 说明 |
---|---|
文本消息 | 消息内容为普通文本。 |
图片消息 | 消息内容为图片 URL 地址、尺寸、图片大小等信息。 |
语音消息 | 消息内容为语音文件的 URL 地址、时长、大小、格式等信息。 |
视频消息 | 消息内容为视频文件的 URL 地址、时长、大小、格式等信息。 |
文件消息 | 消息内容为文件的 URL 地址、大小、格式等信息,格式不限。 |
提示消息 | 又叫做 Tip 消息,没有推送和通知栏提醒,主要用于圈组内的通知提醒,例如频道内聊天过程中的敏感词被安全通检测到后的提示消息。 |
地理位置消息 | 消息内容为地理位置标题、经度、纬度信息。 |
自定义消息 | 开发者自定义的消息类型,例如红包消息、石头剪子布等形式的消息。 |
此文档是否对你有帮助?
有帮助
我要吐槽