You need to enable JavaScript to run this app. 调用Zendesk Requests API提交工单报错Email cannot be blank如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

调用Zendesk Requests API提交工单报错Email cannot be blank如何解决?

问题根因

你收到的报错中field_key: 360013402611对应的不是请求体里requester.email字段,是你的Zendesk实例配置的必填自定义工单字段,该字段要求传入邮箱值,你未在请求参数中传递该字段才触发了校验错误。你调用/api/v2/requests和/api/v2/requests.json返回结果一致是正常的,两个是Zendesk的同功能接口。

解决方案

按以下步骤排查修改即可:

  • 步骤1:处理自定义字段校验
    登录Zendesk管理后台,进入「管理中心」→「对象和规则」→「工单」→「字段」,查找ID为360013402611的字段:
    • 如果该字段不需要在匿名提交时必填,直接关闭「工单提交时必填」的开关即可
    • 如果该字段为必填字段,在请求体的request节点下新增custom_fields参数传递对应值,修改后的请求体构造代码如下:
export const sendZendeskTicket = async (description, email, name) => {
    let body = {
        "request": {
            "requester":
                {
                    "email": email,
                    "name": name
                },
            "subject": "some test subject",
            "comment":
                {
                    "body": description
                },
            // 新增自定义字段传参
            "custom_fields": [
                {
                    "id": 360013402611,
                    "value": email
                }
            ]
        }
    }

    console.log(body)

    let request = await fetch(`https://*some_domain*.zendesk.com/api/v2/requests`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(body)
    })

    let response = await request.json()
    console.log(JSON.stringify(response))
    return response.ok
}
  • 步骤2:确认匿名提交权限开启
    进入Zendesk后台「工单设置」页面,确认「任何人都可以提交工单」开关已开启,避免匿名提交触发额外校验。
  • 步骤3:排查CORS配置
    确认你的React Native应用请求源已经加入Zendesk后台的CORS白名单,防止请求参数被过滤导致字段丢失。

内容的提问来源于stack exchange,提问作者Anton A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 02:45:06