Zoho CRM API 上的分页如何工作?

问题描述

我正在从 Zoho CRM API 获取数据

import requests
import json  
import pandas  

refresh_token="xxxx"  
client_id="xxxx"
client_secret="xxx"  

req1=requests.post("https://accounts.zoho.com/oauth/v2/token?refresh_token=" + refresh_token + "&client_id="+ client_id + "&client_secret=" + client_secret + "&grant_type=refresh_token")
print(req1.status_code)  
data=req1.json()  
acc_token=data['access_token']  

headers= {'Authorization': 'Zoho-oauthtoken '+acc_token}
url="https://www.zohoapis.com/crm/v2/Leads"  
r= requests.get(url,headers=headers)  
print(r.status_code)  
print(r.json()) 

我收到了回复,但我只能收到 200 条记录。 JSON 响应在末尾具有以下详细信息

'info': {'per_page': 200,'count': 200,'page': 1,'more_records': True}}.

请帮我获取所有记录

解决方法

根据 zoho 文档,您可以提供 page=per_page= URL 参数以选择您想要阅读的页面以及您需要的结果数量。

以下是您正在调用的端点的文档: https://www.zoho.com/crm/developer/docs/api/v2/get-records.html

及相关参数:

sort_order(字符串,可选)对记录列表进行排序 升序或降序。可能的值:asc - 升序; desc - 降序

sort_by(字符串,可选)指定字段的 API 名称基于 必须对记录进行排序。可能的值:字段 API 名称。 示例:电子邮件

page(整数,可选)从 各自的页面。页的默认值为 1。可能的值: 仅正整数值。

per_page(整数,可选)获取每个可用的记录列表 页。页的默认值为 200。可能的值:正整数 仅值。

调用 https://www.zohoapis.com/crm/v2/Leads?page=2 应该会给你接下来的 200 个结果

,

在这里,您将使用 pagination,因为您必须编写类似这样的代码。

more_records = True
page_number = 1

while more_records:
    get_url="https://www.zohoapis.com/crm/v2/Leads?page="+str(page_number)
    r = requests.get(url=get_url,headers=headers)

    for lead in r:
      """YOUR CODE"""

    page_number += 1
    more_records = r.json()['more_records']