如何在Zenpy Python客户端库中将受让人设置为票证

时间:2018-06-20 06:50:13

标签: python zendesk zendesk-api itsm

我正在使用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的愚蠢行为吗,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

我花了一段时间,但我认为我理解您的问题。在“对象属性”部分下“ API对象”部分的文档中:

  

访问受让人属性时,Zenpy首先尝试   在用户缓存中找到相关的用户,如果找不到   将生成并执行API调用以检索,实例化,缓存   并返回对象。

我错误地认为这意味着我可以设置受理人属性的值,而zenpy会查找该值,然后将其id放入Assignee_id字段中。这是一个错误的解释。引用表示如果您设置了assignee_id,然后尝试访问assignee属性,它将查找并返回它。但是必须有一个ID。

从文档的下一部分开始:

  

重要的是要注意,大多数财产设定者会抛弃所有   ID以外的信息。这是因为Zendesk只期望   id,因此不会保留对该对象所做的任何修改   自动。

因此,当您设置没有ID的受让人或请求者时,电子邮件地址将被丢弃,并且相应的ID将被设置为None。

关于设置请求者ID的原因,可能将其设置为用于认证请求的用户,而不是您指定的用户。