Zendesk api v2 python到静态zendesk门票

时间:2017-12-15 07:39:18

标签: python zendesk zendesk-api

帮助, 我使用zendesk api v2 python来静态zendesk票并与zendesk自定义报告进行比较但是有不同的结果。

自定义于2017年12月14日开始于2017年12月15日结束,但有两个不同的结果:

自定义161张新票,但api码只返回84票。 我尝试其他不同的自定义报告,并有类似的问题

我的案子有什么问题? 谢谢你的帮助

r = requests.get('https://mydomain.zendesk.com/api/v2/search.json?query=type:ticket%20created%3E2017-12-14T00:00:00Z%20created%3C2017-12-15T00:00:00Z&page=1&sort_by=created_at&sort_order=desc',auth=('myauth', 'mypass'))
print json.dumps(r.json(), sort_keys=True, indent=10)

1 个答案:

答案 0 :(得分:0)

我猜你的查询中的问题是:

created%3E2017-12-14T00:00:00Z%20created%3C2017-12-15T00:00:00Z

您似乎在12月14日午夜到12月15日午夜查询,因此结果集应该只返回12月14日的门票。

我查看了Zendesk API Search documentation,我会说它应该足以编码:

created>2017-12-14T00:00:00Z created<2017-12-16T00:00:00Z

代替:

created%3E2017-12-14T00:00:00Z%20created%3C2017-12-16T00:00:00Z

您可以找到一些特定的python examples和此pagination doc。您的代码应如下所示:

from urllib.parse import urlencode
import requests

results = [] # Empty list store paginated results    
credentials = 'your_zendesk_email', 'your_zendesk_password'
session = requests.Session()
session.auth = credentials

params = {
    'query': 'type:ticket created>2017-12-14T00:00:00Z created<2017-12-16T00:00:00Z',
    'sort_by': 'created_at',
    'sort_order': 'desc'
}

url = 'https://your_subdomain.zendesk.com/api/v2/search.json?' + urlencode(params)

while url:
    response = session.get(url)
    data = response.json()
    results += data['results']
    url = data['next_page'] # At the last page, the API should return false

print json.dumps(results.json(), sort_keys=True, indent=10)