【问题标题】:Zendesk api v2 python to static zendesk ticketZendesk api v2 python 到静态 zendesk 票
【发布时间】:2017-12-15 07:39:18
【问题描述】:

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

自定义开始于 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)

【问题讨论】:

  • 也给出 json 响应,结果有可能发生分页,这意味着您需要将其用作下一个查询的输入以获取所有值。
  • api 返回 "count": 84 但自定义 161 。我知道结果会分页 if(count>100)

标签: python zendesk zendesk-api


【解决方案1】:

我猜你查询的问题是:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2013-05-30
    • 2018-05-20
    • 1970-01-01
    • 2021-12-27
    • 2015-10-12
    相关资源
    最近更新 更多