我需要获取特定时期或以增量方式与所有zendesk票证关联的票证事件。我怎么能那样做。
例如,如果一张票一天更新10次,我需要获得每一个事件的详细信息。我使用的DB是Postgres,后端语言是Python。
下面是我用来获取票证详细信息的脚本,但这只给了我票证的最后更新的详细信息,而不是与该票证相关的所有事件。
请帮忙。
from zenpy import Zenpy
import datetime
import json
# DB Connection
conn = get_connection("Connection String")
cur = conn.cursor()
sql = 'DROP TABLE IF EXISTS tickets; CREATE TABLE tickets ( ID NOT NULL '
'PRIMARY KEY, values json NOT NULL); '
cur.execute(script)
conn.commit()
# Zenpy accepts an API token
creds = {
'email': 'email.com',
'token': '*****************',
'subdomain': '******'
}
time_now = datetime.datetime.strftime(datetime.datetime.utcnow(), '%Y-%m-%d%H:%M:%S')
time_now = datetime.datetime.strptime(time_now, '%Y-%m-%d%H:%M:%S')
one_hour_past = datetime.datetime.strftime((datetime.datetime.utcnow() - datetime.timedelta(hours=1)),
'%Y-%m-%d%H:%M:%S')
one_hour_past = datetime.datetime.strptime(one_hour_past, '%Y-%m-%d%H:%M:%S')
zenpy_client = Zenpy(**creds)
updated_tickets = zenpy_client.search(type='ticket', updated_at_between=[one_hour_past, time_now])
for tc in updated_tickets:
details_json = json.dumps(tc.to_dict(), sort_keys=False)
print(details_json)
insert_sql = '''INSERT INTO tickets(values) VALUES ( $$ ''' + details_json + ''' $$ )'''
cur.execute(insert_sql)
conn.commit()
insert_query = '''INSERT INTO tickets(values) VALUES ( $$ ''' + details_json + ''' $$ )'''
cur.execute(insert_query)
conn.commit()
在这里使用增量API时,我想考虑一些事情。您可以选择使用侧面加载,这样就可以获取此处提到的受支持的端点(https://developer.zendesk.com/rest_api/docs/support/side_loading#special-sideloads(,然后您可以更深入地了解它,以找到audits端点并找到audits事件(https://developer.zendesk.com/rest_api/docs/support/ticket_audits#audit-事件(,这可以让你进一步了解每张门票,等等。我知道这是不久前发布的,你可能已经找到了解决方案,但这可能会对其他可能遇到同样问题的人有所帮助。这是根据我的经验:(
干杯,