IM 即时通讯
服务端
服务端集成新手指南
接口及业务限制
更新日志
平台服务
第三方回调
第三方回调概述
消息相关回调
用户信息相关回调
高级群相关回调
超大群相关回调
聊天室相关回调
音视频1.0相关回调
登录相关回调
圈组相关回调
消息抄送
消息抄送服务概述
开通消息抄送
IM会话相关抄送
IM 会话已读数据抄送
IM其他抄送
圈组相关抄送
音视频和白板相关抄送
安全通
安全通概述
开通 IM 安全通
最佳实践
聊天室重要消息投递
IM 平滑迁移方案
API 参考
API调用方式
状态码
云信 IM 账号管理
注册云信IM账号
刷新Token
封禁账号
账号全局禁言
设置移动端是否需要推送(桌面端在线时)
登录鉴权
消息功能
发送消息
发送单聊已读回执
发送群聊已读回执
消息撤回
发送广播消息
文件上传
删除单条消息
删除漫游消息
历史消息与记录
云端历史消息查询
广播消息查询
IM 登录/登出记录查询
自定义系统通知
用户名片
用户关系管理
好友关系管理
黑名单/静音管理
群组
高级群
创建高级群
拉人入群
发送群消息
添加管理员
移除管理员
转让群主
禁言群组
禁言指定群成员
踢人出群
主动退群
修改群昵称
修改群组信息
设置群消息提醒开关
解散群组
获取群组详细信息
获取群组禁言列表
获取群消息已读未读详情
获取用户已加入的群组信息
获取用户已加入的群组的所有群成员信息
获取群组的在线成员列表
批量获取群组信息与成员列表
批量获取群组的在线成员数量
超大群
创建超大群
拉人入群
发送超大群消息
发送超大群自定义系统通知
撤回超大群消息
添加管理员
移除管理员
转让群主
禁言超大群
禁言指定超大群成员
踢人出群
主动退群
修改超大群昵称
修改超大群信息
修改超大群成员信息
解散超大群
修改超大群人数级别
获取超大群信息
获取超大群成员信息
获取超大群禁言成员信息
获取已加入的超大群信息
查询超大群云端历史消息
聊天室
创建聊天室
获取聊天室地址
更新聊天室信息
查询聊天室信息
开放/关闭聊天室
查询开放状态的聊天室
设置聊天室定时关闭
开启/关闭进出聊天室事件通知
管理聊天室用户角色
获取聊天室成员列表
聊天室消息管理
发送聊天室消息
批量发送聊天室消息
撤回聊天室消息
发送聊天室定向消息
批量发送聊天室定向消息
发送聊天室全服广播消息
管理聊天室机器人
聊天室禁言
聊天室标签
管理聊天室队列
管理聊天室队列元素
圈组
获取圈组连接地址
服务器相关
创建服务器
修改服务器信息
删除服务器
批量查询服务器信息
分页查询服务器列表
服务器成员相关
邀请服务器成员
接受邀请
拒绝邀请
申请加入服务器
接受申请
拒绝申请
生成邀请码
通过邀请码加入
踢出成员
主动退出服务器
修改自己的成员信息
修改他人的成员信息
分页查询服务器成员列表
批量查询服务器成员信息
查询服务器的申请和邀请记录
查询个人的申请和邀请记录
更新成员封禁状态
分页查询封禁成员列表
频道相关
创建频道
修改频道基础信息
修改频道分组相关信息
删除频道
分页查询频道列表
批量查询频道信息
分页查询频道成员列表
修改频道黑白名单成员
修改频道黑白名单身份组
分页查询频道黑白名单成员列表
分页查询频道黑白名单身份组列表
批量查询频道黑白名单成员
批量查询频道黑白名单身份组
频道分组相关
身份组相关
服务器身份组
身份组成员管理
频道身份组
频道用户定制权限
频道分组身份组
频道分组用户定制权限
身份组自定义权限项
查询用户拥有的权限
圈组消息相关
发送消息
更新消息
查询云端历史消息
查询 Thread 聊天历史
批量查询Thread聊天meta 信息
更新快捷评论
查询快捷评论
查询@某人的未读消息
系统通知相关
圈组系统通知概述
发送自定义系统通知
更新自定义系统通知
搜索结果自定义排序
修改服务器自定义排序值
修改频道自定义排序值
在线状态订阅
文本翻译
推送payload配置

实现圈组消息收发

更新时间: 2023/03/08 09:54:31

本文介绍在不考虑用户权限控制的场景下,如何通过 IM 服务端 API,快速实现圈组的消息收发。

圈组的用户权限控制通过身份组相关 API 实现。 服务端的身份组相关 API 的介绍请参见身份组管理

前提条件

实现流程

在以下流程中,我们以用户A 和用户B 在圈组的消息交互场景为例。

  • 场景1
uml diagram
  • 场景2
uml diagram

步骤1:用户登录圈组

用户A 和用户 B 调用 qchat/requestAddr.action 请求客户端接入地址,从而登录圈组。

步骤2:用户A 创建服务器

用户A 调用 qchat/createServer.action 创建一个圈组服务器。

步骤3:用户B 加入服务器

用户B 可以通过被用户A 邀请加入服务器(场景1),也可以主动申请加入用户A 创建的服务器(场景2)。

场景1

  1. 用户A 调用 qchat/inviteServerMember.action 邀请用户 B。
  2. 用户B 调用 qchat/acceptServerInvite.action 接受用户A 的邀请,加入用户A 创建的服务器。

创建服务器时,可将 inviteMode(邀请模式)设为“邀请不需要同意”。本流程以 inviteMode设为“邀请需要同意”为例进行介绍。

场景2

  1. 用户B 调用 qchat/applyServer.action申请加入用户A 创建的服务器。
  2. 用户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 消息,没有推送和通知栏提醒,主要用于圈组内的通知提醒,例如频道内聊天过程中的敏感词被安全通检测到后的提示消息。
地理位置消息 消息内容为地理位置标题、经度、纬度信息。
自定义消息 开发者自定义的消息类型,例如红包消息、石头剪子布等形式的消息。
此文档是否对你有帮助?
有帮助
我要吐槽
  • 前提条件
  • 实现流程
  • 步骤1:用户登录圈组
  • 步骤2:用户A 创建服务器
  • 步骤3:用户B 加入服务器
  • 场景1
  • 场景2
  • 步骤4: 用户A 创建频道
  • 步骤5: 确保频道对用户B 可见
  • 步骤6: 实现消息收发