1

Zenpy クライアントを使用して、Zendesk ITSM API を Python ライブラリに統合しています。

zenpy クライアントを使用してチケットを作成する場合、メール ID でチケットのレポーターを設定できますが、担当者の場合、メール ID で担当者を設定できません。

これは私がこれまでに試したコードです。

ticket_payload = Ticket(
    description="some description",
    type="task",
    priority="high",
    status="open"
    )

ticket_payload.requester = User(email="requester1@gmail.com"])
ticket_payload.assignee = User(email="assignee1@gmail.com")

response = self.zenpy_client.tickets.create(ticket_payload)

受け取った応答チケットにはレポーターが設定されていますが、担当者はなしです。

メールと一緒にIDを渡すと

ticket_payload.assignee = User(id= 354876354,email="assignee1@gmail.com")

その後、機能し、担当者がチケットに設定されていることがわかります。ただし、これはレポーターには必須ではありません。

これは zenpy のデフォルトの動作ですか、それとも何か不足していますか?

4

1 に答える 1

1

少し時間がかかりましたが、問題は理解できたと思います。オブジェクト プロパティ セクションの下の API オブジェクト セクションのドキュメントから:

担当者属性がアクセスされると、Zenpy は最初に関連するユーザーをユーザー キャッシュで見つけようとします。見つからない場合は、API 呼び出しを生成して実行し、オブジェクトを取得、インスタンス化、キャッシュして返します。

私は誤って、担当者属性の値を設定でき、zenpy がそれを調べてから、id を assignee_id フィールドに入れることを意味すると思い込んでいました。これは間違った解釈です。引用符は、assignee_id を設定してから担当者属性にアクセスしようとすると、それを検索して返すことを意味します。しかし、IDが必要です。

ドキュメントの次のセクションから:

ほとんどのプロパティ セッターは、id 以外のすべての情報を破棄することに注意してください。これは、Zendesk が ID のみを想定しているため、オブジェクトに加えられた変更が自動的に永続化されないためです。

そのため、ID なしで担当者または依頼者を設定すると、電子メール アドレスは破棄され、それぞれの ID は None に設定されます。

リクエスタ ID が設定されている理由については、指定したユーザーではなく、リクエストの認証に使用するユーザーに設定されている可能性があります。

于 2018-08-06T12:10:37.950 に答える