我需要获取与特定时期的所有 zendesk 票相关联的票事件,或者以增量方式。我该怎么做。
例如,如果一张票每天更新 10 次,我需要获取每个事件详细信息。我使用的数据库是 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()