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

如何通过Salesforce REST API获取全部联系人?

解决方案:同步Salesforce全部联系人到自有应用

一、原生REST API分页获取全量数据

Salesforce REST API的query端点确实限制单页最大200条,且offset不能超过2000,但通过nextRecordsUrl可实现全量数据拉取,流程如下:

  1. 发起初始查询请求,设置limit=200(单页允许的最大值),示例请求:
    GET /services/data/v59.0/query?q=SELECT+Id,Name+FROM+Contact+LIMIT+200
    
  2. 处理响应结果:
    • 若响应中存在nextRecordsUrl字段,说明还有未返回的数据,直接使用该URL发起下一次请求(该URL已包含分页上下文,无需重新拼接SOQL)
    • 若响应中无nextRecordsUrl,则表示所有数据已拉取完成

二、jsforce库的分页实现

jsforce已封装分页逻辑,无需手动处理nextRecordsUrl,正确用法如下:

  1. 查询时将limit设为200(单页最大值),或不指定limit(默认值即为200)
  2. 配合hasNext()和next()循环获取所有数据:
    const jsforce = require('jsforce');
    const conn = new jsforce.Connection({ /* 你的认证配置 */ });
    
    async function fetchAllContacts() {
      let allContacts = [];
      let query = conn.query("SELECT Id, Name FROM Contact LIMIT 200");
      
      do {
        const result = await query.execute();
        allContacts = allContacts.concat(result.records);
        query = result.hasNext() ? result.next() : null;
      } while (query);
    
      return allContacts;
    }
    
    fetchAllContacts().then(contacts => {
      console.log(`共获取到 ${contacts.length} 条联系人数据`);
      // 此处处理同步到自有应用的逻辑
    }).catch(err => {
      console.error('拉取数据失败:', err);
    });
    
    • 你之前设置limit=10时无nextRecordsUrl,是因为请求的10条数据已完全返回,无剩余数据,因此不会生成下一页链接
    • jsforce限制limit不超过200是Salesforce REST API本身的平台限制,并非库的限制

三、大数据量场景的替代方案

若同步的联系人数量极多(如10万+),可使用Salesforce Bulk API,它更适合批量数据导出:

  • Bulk API支持异步批量查询,可处理百万级数据量
  • jsforce同样支持Bulk API调用,示例代码:
    async function bulkFetchContacts() {
      const job = await conn.bulk.createJob('Contact', 'query');
      const batch = await job.createBatch();
      await batch.execute("SELECT Id, Name FROM Contact");
      
      // 等待批量任务完成
      let batchInfo;
      do {
        batchInfo = await batch.check();
        await new Promise(resolve => setTimeout(resolve, 1000));
      } while (!batchInfo.completedDate);
    
      const results = await batch.result();
      return results;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:43:21