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

调用Xero Api.GetContactsAsync仅返回100条联系人记录求助

解决Xero API仅返回100条联系人的问题

Xero Contacts API默认启用分页机制,即便你没显式指定页码参数,接口也只会返回第1页的100条数据。要获取系统中全部联系人,必须通过分页遍历的方式循环请求所有页面的数据。

实现思路

  • 初始化一个集合用来存储所有联系人
  • 从第1页开始发起请求,逐页拉取数据
  • 将每页返回的联系人追加到总集合
  • 根据返回结果的分页元数据判断是否还有下一页,直到所有页面的数据都被获取

代码示例

var allContacts = new List<Contact>();
int currentPage = 1;
int totalPages;

do
{
    var pageResult = await Api.GetContactsAsync(
        accessToken: XeroToken.AccessToken,
        xeroTenantId: TenantId,
        summaryOnly: true,
        searchTerm: searchPhrase,
        page: currentPage // 指定当前请求的页码
    );

    // 将当前页的联系人添加到总列表
    allContacts.AddRange(pageResult.Contacts);
    
    // 从返回结果中获取总页数(Xero API会返回该分页元数据)
    totalPages = pageResult.TotalPages;
    
    // 页码自增,准备请求下一页
    currentPage++;

} while (currentPage <= totalPages); // 循环直到请求完所有页面

注意点

  • 确保你的API返回结果包含TotalPages(或类似的分页标识字段),用来判断是否还有未获取的页面
  • 如果Xero API有请求频率限制,可适当添加短延迟避免触发限流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:10:54