API接口文档
  1. 最佳实践
API接口文档
  • 接入说明
  • 快速入门
    • 如何发送一条消息
    • 通过接口实现群发
    • 加密externalUserId打通方案
    • unionId打通方案
    • 企业级API消息回调签名说明
  • 接口文档
    • 企业级接口
      • 企业级接口说明
      • 成员接口
        • 成员信息
          • 获取企业成员列表
          • 通过邮箱或uid获取成员详情
          • 激活成员
        • 部门信息
          • 获取部门列表
          • 获取部门成员
        • 企业内小组管理
          • 创建小组
          • 查询小组
          • 删除小组
        • 获取企业信息
          • 获取企业基础信息
        • 通过成员userid获取账号botId
          • 通过成员userid获取账号botId
        • 通过账号botId获取成员userid
          • 通过账号botId获取成员userid
        • 获取小组API信息
          • 获取企业内各小组API配置信息
          • 修改API配置信息
      • 客户接口
        • 客户信息管理
          • 获取客户列表
          • 查询客户详情
          • 企业微信外部联系人externalUserId转系统wxid
          • 系统wxid转换企业微信外部联系人externalUserId
          • 删除客户接口
          • 添加客户接口
          • 服务商id打通接口
          • 新增客户回调—RPA
          • 客户信息变更回调
          • 删除客户或者被客户删除回调
          • 修改备注手机号
          • 修改描述
          • 修改称呼
          • 修改备注
          • 客户id置换接口
          • 客户同步接口
          • 通过好友申请
          • 好友申请回调
          • 添加跟进记录v2
        • 标签管理
          • 获取自定义标签列表
          • 添加自定义标签
          • 更新自定义标签
          • 删除自定义标签
          • 增/删自定义标签
          • 添加自定义标签组
          • 删除自定义标签组
          • 修改自定义标签组名
          • 获取标签列表
          • 获取底层标签列表
          • 获取标签详情
          • 创建标签
          • 修改标签组
          • 修改标签
          • 删除标签组
          • 删除标签
          • 通过底层编辑客户企业标签
      • 托管账号接口
        • 账号操作管理
          • 获取企业内各小组托管账号信息
          • 账号托管事件回调
          • 新建托管账号
          • 删除托管账号
          • 重启托管账号
          • 查询托管账号状态
          • 输入托管账号验证码
          • 账号限制事件回调
          • 托管账号昵称变更回调
        • 托管账号标签
          • 创建托管账号标签
          • 删除托管账号标签
          • 更新托管账号标签
          • 获取托管账号标签列表
          • 给托管账号打/删标签
      • 群聊接口
        • 群聊欢迎语管理
          • 新建入群欢迎语
          • 查询入群欢迎语
          • 更新入群欢迎语
        • 群聊操作管理
          • 创建群聊
          • 将客户移出群聊
          • 将客户拉入群聊
          • 群聊改名
          • 群聊禁止改名
          • 群聊转移群主
          • 设置群管理员
          • 解散群聊
          • 修改托管账号在群聊中的昵称
          • 群活码
          • 禁止互相添加为联系人
          • 退出群聊接口
        • 群聊黑名单管理
          • 拉入群聊黑名单
          • 移出群聊黑名单
          • 获取群聊黑名单列表
        • 群聊防骚扰管理
          • 获取群聊防骚扰策略列表
          • 获取防骚扰策略生效的群聊列表
          • 应用防骚扰策略
        • 获取群聊信息
          • 获取群列表
          • 获取群二维码
          • 企业微信群chatid转系统群roomwxid
          • 系统群roomwxid转企业微信群chatid
          • 查询群详情
          • 群聊同步接口
      • 营销功能接口
        • 极速群发
          • 创建极速群发任务
          • 删除定时极速群发
          • 极速群发回调
          • 获取极速群发失败详情
        • 朋友圈
          • 查询朋友圈详情
          • 删除朋友圈
          • 朋友圈点赞回调
          • 朋友圈评论回调
          • 创建朋友圈
          • 创建朋友圈回调
          • 获取朋友圈列表
          • 朋友圈评论接口
          • 朋友圈点赞接口
        • 素材
          • 动态素材管理
            • 创建动态素材
            • 获取动态素材
          • 素材组管理
            • 获取素材组列表
            • 创建素材组
            • 更新素材组
          • 素材管理
            • 获取素材列表
            • 创建素材
            • 修改素材
            • 获取表单素材详情
        • 无限版群发
          • 无限版群发回调
          • 获取无限制群发失败详情
          • 获取群发详情
          • 创建无限版群发
          • 取消无限版群发任务
          • 查询无限版群发任务
      • 会话消息接口
        • 会话接口
          • 加入会话规则
          • 移除会话规则
          • 会话规则列表
          • 标为已读接口
          • 查询过滤规则中回话列表接口
          • 获取会话小结信息接口
          • 会话超时跟进回调
          • 设置免打扰接口
          • 设置成员上班时间
          • 自动结束会话
        • 消息接口
          • 发送消息
          • API发送消息结果回调
          • 接收消息回调 POST
          • 获取指定托管账号的聊天历史
          • 撤回消息
          • 发送消息(企微id)
        • 队列发送消息
          • 获取配置
          • 更新配置
          • 队列发送消息接口
          • 队列发送消息接口(企微id)
          • 队列发消息接口回调
      • 渠道合作接口
        • 侧边栏SDK
        • SSO概述
        • 聊天工作台 iframe 接入
        • 小组控制台 iframe 接入
      • 操作日志接口
        • 获取聚合聊天操作日志
    • 小组级接口
      • 小组级接口说明
      • 基础接口
        • 获取托管企业微信列表
        • 获取个人微信授权到期及首次扫码登录的时间
        • 获取联系人列表
        • 获取群列表
        • 获取群列表(不包含成员信息)
        • 发送系统通知
        • 获取自定义标签列表
        • 获取组内员工列表
      • 群聊接口
        • 加入群聊
        • 退出群聊事件回调
        • 加入群聊事件回调
        • 更改群名事件回调
        • 创建群聊
        • 通过联系人id获取联系人所在群聊
      • 会话接口
        • 开发建议
        • 获取指定会话
        • 获取会话列表
        • 会话事件回调
        • 分配会话
      • 加好友接口
        • 通过手机号加好友接口
        • 添加好友回调
        • 好友通过后回调
        • 群聊加好友接口
        • 通过企微id群聊加好友
      • 消息接口
        • 企微id发消息
        • 聊天历史
        • 小组级接收消息回调
        • 发送消息
      • 群发接口
        • 创建群发
        • 创建群发 Copy
        • 重发群发
        • 取消群发
        • 删除群发
        • 群发回调
        • 获取群发任务的失败列表
        • 获取群发任务的没有发送的列表
        • 获取群发任务的进度
    • 渠道级接口
      • 渠道级接口文档说明
      • 获取代理商token
      • 获取企业基础信息
      • 代理商下企业注册回调
    • 自建应用依赖接口
      • 自建应用依赖接口说明
      • 客户信息接口
        • 新增客户回调
        • 修改客户备注
        • 添加跟进记录
      • 雷达接口
        • 雷达访问接口
      • id信息获取接口
        • 获取chatId
        • 通过unionId获取chatId
    • 废弃接口
      • 会话小结
      • 渠道二维码管理
        • 获取渠道列表(企业控制台数据)
      • 秒回数据同步
      • 获取客户列表(2023/12/05 废弃)
      • 获取群列表
      • 获取客户详情
      • 获取群信息
      • 绑定企业微信官方ID
      • 通过externalUserId获取chatId
      • 获取群列表(2023/2/05 废弃)
      • 获取成员详情
      • 编辑客户企业标签
      • 加入群聊
  • 更新日志
    • 更新日志
  • 最佳实践
    • 联系人群聊相关最佳实践
    • 消息相关最佳实践
    • AI 课程助手
  1. 最佳实践

联系人群聊相关最佳实践

1. 全量数据拉取#

如果你的联系人数量和群聊数量很大(超过5万),而且你希望能够通过接口拉取到所有的数据,那么普通的翻页接口可能无法满足你的需求。
📌
众所周知,数据库在进行翻页操作的时候,翻到大页码时实际上是从0页进行扫描的,扫到了对应页码之后,从开始处拉取数据并返回,这也就导致了普通的翻页方式在数据量达到一定体量之后,翻页数据的返回速度就越来越慢,最终会导致接口超时无法获取到对应的数据。
为了解决上述这样的问题,系统提供了另外一种翻页的方式,通过游标的方式进行翻页,我们以这个接口为例:获取客户列表
可以看到这个接口上有一个特殊的字段seq,这个字段的描述是
游标,在current不传时生效,生效后按照游标拉取数据,不返回 总数
也就是我们的翻页操作可以通过这个字段来实现,具体如下
image.png
可以看到上面这个例子里,我们希望通过每页1000条数据来全量拉取,但是拉到第86页的时候,就已经拉不动了,接口超时,60秒还没有返回数据,这样就造成我们实际上无法达成我们希望的拉取全量数据的目标,但是如果我们换成seq的方式来进行拉取,就没有这个问题了
image.png
上面这个截图里可以看到,当使用seq参数进行翻页的时候,请求速度有了飞跃式的提升,并且这个速度不会因为翻页到后面而衰减

如何使用 seq 翻页#

1.
拉取数据的时候不要传 current 参数
2.
拉取第一页的时候,不要传 seq 参数
3.
在获取到的数据里面,取出来 next_seq 字段,并且将这个字段赋值给 seq 参数来拉取下一页数据

示例#

第一次请求#

获取到结果类似这样
{
    "errcode": 0,
    "errmsg": "",
    "data": [{
        // ...很多联系人数据
    }],
    "pageSize": 1000,
    "next_seq": "64ae6fe8aaaaaa21c29cbe03"
}

后续请求#

接下来从就可以持续翻页获取更多数据了,首先从上一次接口请求的返回值里拿到 next_seq 的值,然后将这个值传到参数 seq 上,类似这样
这个请求最终会拿到类似第一个请求一样的返回值,并且这一次请求一般都会非常快的拿到返回数据,后面就可以重复这个步骤拿更多的数据

结束请求#

当某一次返回结果里面并不存在next_seq的值的时候,这个时候就说明翻页到了尾部,不需要在继续调用接口获取数据了,也无法获取下一页数据了,数据都拉全了,这个时候推出循环即可。
上一页
最佳实践
下一页
消息相关最佳实践
Built with