Skip to content

Instantly share code, notes, and snippets.

@hassaku63
Created September 4, 2019 02:48
Show Gist options
  • Save hassaku63/d1f89ee8ea52681ead4484166e0cf8db to your computer and use it in GitHub Desktop.
Save hassaku63/d1f89ee8ea52681ead4484166e0cf8db to your computer and use it in GitHub Desktop.
件名でサーチして一覧をoutput.csvに出力
# coding: utf-8
import os
import csv
import argparse
from tqdm import tqdm
from zenpy import Zenpy
def main():
parser = argparse.ArgumentParser(
prog='Zendesk ticket search',
description="""Zendesk APIはsubdomain/email/token の3つを認証情報として要求します。
環境変数ZENDESK_SUBDOMAIN/ZENDESK_EMAIL/ZENDESK_TOKENで定義するか、
コマンドライン引数で直接指定してください。
両方で指定した場合はコマンドライン引数が適用されます。
"""
)
parser.add_argument('--keyword', type=str, dest='keyword', required=True, \
help='keyword will serach from subject')
parser.add_argument('--subdomain', type=str, dest='subdomain', \
help='zendesk subdomain')
parser.add_argument('--email', type=str, dest='email', \
help='zendesk email')
parser.add_argument('--token', type=str, dest='token', \
help='zendesk token')
parser.add_argument('--output', type=str, dest='output', default='output.csv', \
help='output file. default=output.csv')
args = parser.parse_args()
credential = {
'subdomain': os.environ.get('ZENDESK_SUBDOMAIN', ''),
'email': os.environ.get('ZENDESK_EMAIL', ''),
'token': os.environ.get('ZENDESK_TOKEN', '')
}
if getattr(args, 'subdomain', False):
credential['subdomain'] = args.subdomain
if getattr(args, 'email', False):
credential['email'] = args.email
if getattr(args, 'token', False):
credential['token'] = args.token
zendesk_client = Zenpy(**credential)
resp = list(zendesk_client.search(args.keyword))
rows = []
for r in tqdm(resp):
rows.append([
r.type,
r.id,
r.created_at,
r.subject,
r.organization_id,
r.organization.name,
r.status,
r.url
])
with open(args.output, 'w') as fp:
csv.writer(fp).writerows(rows)
if __name__ == '__main__':
main()
@hassaku63
Copy link
Author

検索の仕様は公式ドキュメントに準拠
https://developer.zendesk.com/rest_api/docs/support/search

@hassaku63
Copy link
Author

Requirements

zenpy==2.0.12
tqdm==4.35.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment