You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API单请求限200条记录,需JS计数器实现批量获取数据

解决Zoho CRM API分页获取重复数据的问题

你的问题根源是每次请求未传递分页参数,导致API始终返回第一页的200条数据,最终数组里全是重复的分页结果。Zoho CRM的Search Records API支持分页参数,通过page(页码)和per_page(每页条数,最大值200)即可获取不同页的内容,以下是具体解决方案:

核心修改点

  1. 给每个API请求添加page参数,循环时从1开始递增,直到获取到所需总条数
  2. 处理异步请求的顺序问题,避免并发请求导致的逻辑混乱
  3. 正确展开返回的记录数组,避免存入嵌套对象

方案一:固定页数的串行请求(适用于已知每日记录数范围)

如果每日记录在800-1200条,对应4-6页,可直接循环对应页码:

const totalPages = 6; // 1200/200=6,根据实际需求调整
const dealRecords = [];

async function fetchAllRecords() {
  for (let page = 1; page <= totalPages; page++) {
    try {
      // 传入分页参数
      const response = await SOMECOMPANY.API.searchRecord({
        Entity: "Greeting",
        Type: "criteria",
        Query: "(Text:equals:Hay)",
        page: page,
        per_page: 200
      });
      // 将当前页记录展开存入数组(根据API实际返回结构调整response.data)
      dealRecords.push(...response.data);
    } catch (err) {
      console.error(`第${page}页获取失败:`, err);
    }
  }
  console.log("所有获取到的记录:", dealRecords);
}

fetchAllRecords();

方案二:动态计算总页数(更灵活,适用于不确定总记录数的场景)

先请求第一页获取总记录数,再计算需要请求的总页数,避免请求不存在的页码:

const dealRecords = [];
const perPage = 200;

async function fetchAllRecords() {
  // 先获取第一页,拿到总记录数
  const firstPageRes = await SOMECOMPANY.API.searchRecord({
    Entity: "Greeting",
    Type: "criteria",
    Query: "(Text:equals:Hay)",
    page: 1,
    per_page: perPage
  });

  dealRecords.push(...firstPageRes.data);
  const totalRecords = firstPageRes.info.total_count; // 假设API返回的info中包含总条数
  const totalPages = Math.ceil(totalRecords / perPage);

  // 从第2页开始循环请求
  for (let page = 2; page <= totalPages; page++) {
    try {
      const pageRes = await SOMECOMPANY.API.searchRecord({
        Entity: "Greeting",
        Type: "criteria",
        Query: "(Text:equals:Hay)",
        page: page,
        per_page: perPage
      });
      dealRecords.push(...pageRes.data);
    } catch (err) {
      console.error(`第${page}页获取失败:`, err);
    }
  }

  console.log("所有获取到的记录:", dealRecords);
}

fetchAllRecords();

注意事项

  • API返回结构校验:不同版本的Zoho API返回格式可能有差异,可先单独请求一次,打印response查看实际结构,调整response.data和response.info.total_count的取值路径
  • 频率限制:Zoho API有请求频率限制,串行请求(async/await)比并发请求更不容易触发限制,如果需要并发,建议控制同时请求的数量
  • 错误处理:添加try/catch避免单页请求失败导致整个流程中断,可根据需求选择中断或继续后续请求

内容的提问来源于stack exchange,提问作者Nathan Zoho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:47:51