【问题标题】:ZenDesk API result does not match call when deleting删除时 ZenDesk API 结果与调用不匹配
【发布时间】:2015-03-09 16:09:47
【问题描述】:

我正在使用 ZenDesk API (https://developer.zendesk.com/rest_api/docs/core/introduction) 将 ZenDesk 设置与另一个客户端数据库同步。当我尝试删除组织时,我收到的响应似乎表明已进行更新调用。

根据文档 (https://developer.zendesk.com/rest_api/docs/core/organizations#delete-organization),调用应该是 DELETE /api/v2/organizations/{id}.json 其中 {id} 是组织的 ID。

我编写了我认为正确的代码,并与 Fiddler 进行了检查。 Fiddler 上的调用如下:

DELETE /api/v2/organizations/39005971.json HTTP/1.1

原始请求视图显示(带有修订):

DELETE https://<redacted>.zendesk.com/api/v2/organizations/39005971.json HTTP/1.1
Authorization: Basic <redacted>
Host: <redacted>.zendesk.com
Accept: */*
Content-Type: application/json

然后响应返回为:

{
    "error":"RecordInvalid",
    "description":"Record validation errors",
    "details":{
        "name":[
            {
                "description":"Name: has already been taken",
                "error":"DuplicateValue"
            }
        ]
    }
}

如果您尝试插入与现有组织同名的组织,则会给出相同的响应。从文档来看,删除和更新记录的基本区别在于删除请求使用 DELETE,更新使用 PUT - 端点 URL 是相同的。

有人有什么建议吗?如果需要,我可以提供上游代码(在 PHP 中),但是由于 Fiddler 将请求作为格式正确的 DELETE 提取,我不确定该代码是否会有所帮助。

【问题讨论】:

    标签: php zendesk


    【解决方案1】:

    我实际上是为 Zendesk 工作的,并亲自解决了这个问题。您似乎遇到了与组织名称可以拥有的最大字符数有关的错误。您可能有几个组织的名称长度超过 255 个字符,并且在被截断为 255 个之后是相同的名称。现在验证问题正在弹出。真的很抱歉!

    我会向https://support.zendesk.com/hc/en-us/requests/new 发送请求,我们会为您解决此问题!

    【讨论】:

    • 谢谢维克多!我已经这样做了,如果诊断证明正确,我会将这个问题标记为已解决!
    • ZenDesk 承认这是他们的 API 中的一个小故障,并已上报给工程团队。感谢 Victor 和 ZenDesk 的其他人提供的有益回复。
    • 为了完整起见 - 现已推送该问题的修复程序,因此该错误现已失效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2019-06-21
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多