Created
September 4, 2019 02:48
-
-
Save hassaku63/d1f89ee8ea52681ead4484166e0cf8db to your computer and use it in GitHub Desktop.
件名でサーチして一覧をoutput.csvに出力
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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() |
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
検索の仕様は公式ドキュメントに準拠
https://developer.zendesk.com/rest_api/docs/support/search