【问题标题】:How to set assignee to ticket in Zenpy python client library如何在 Zenpy python 客户端库中将受让人设置为票证
【发布时间】:2018-06-20 06:50:12
【问题描述】:

我正在使用 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 的默认行为,还是我遗漏了什么?

【问题讨论】:

    标签: python zendesk zendesk-api itsm


    【解决方案1】:

    我花了一段时间,但我想我理解你的问题。来自 Object Properties 部分下 API Objects 部分的文档:

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

    我错误地认为这意味着我可以设置 assignee 属性的值,zenpy 会查找它,然后将 id 放在 assignee_id 字段中。这是一个不正确的解释。引号意味着如果您设置了assignee_id,然后尝试访问assignee 属性,它将查找并返回它。但是必须有id。

    来自文档的下一部分:

    需要注意的是,大多数属性设置器都会丢弃所有 id 以外的信息。这是因为 Zendesk 只期望 id,因此对对象所做的任何修改都不会保留 自动。

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

    至于为什么设置请求者 ID,它可能设置为您用来验证请求的用户,而不是您指定的用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      相关资源
      最近更新 更多