1. api最佳实践
系统使用说明
  • api模块
    • api接入说明
    • api快速入门
      • 如何发送一条消息
      • 通过接口实现群发
      • 加密externalUserId打通方案
      • unionId打通方案
      • 企业级API消息回调签名说明
      • 获取externalUserId和wecomChatid
      • 加密手机号加好友方案
      • 加密版接口
    • api最佳实践
      • 联系人群聊相关最佳实践
      • 消息相关最佳实践
      • AI 课程助手
  • 使用指南
    • 使用指南
      • 如何获取小程序参数
      • 配置报警机器人流程
      • 飞书报警检测配置教程
      • 企微报警机器人配置教程
      • 客户联系权限配置方法
      • 异地登录助手
    • 多IM托管说明
      • 飞书 托管说明
      • 钉钉 托管说明
      • Instagram 托管说明
      • 小红书 托管说明
      • 微信小店 托管说明
  1. api最佳实践

联系人群聊相关最佳实践

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的值的时候,这个时候就说明翻页到了尾部,不需要在继续调用接口获取数据了,也无法获取下一页数据了,数据都拉全了,这个时候推出循环即可。
修改于 2025-07-18 07:00:57
上一页
加密版接口
下一页
消息相关最佳实践
Built with