Zendesk API - 创建工单给出了错误的工单状态
Zendesk API - Creating a ticket gives wrong ticket status
Zendesk API 文档指出,当通过 API 创建工单时,status
字段可以设置为 "new" (https://developer.zendesk.com/rest_api/docs/core/tickets#create-ticket),但是,如果我使用以下命令调用 API 并指定 status
的值,它会创建一个标记,但仍会将 status
设置为 open
的默认值:
curl -u <username>/token:<api_token> https://<subdomain>.zendesk.com/api/v2/tickets.json -d '{"ticket": {"subject":"test subject", "comment": { "body": "test body" }, "status": "new" } }' -H "Content-Type: application/json" -v POST
响应正文的相关部分是:
"ticket": {
"url": "https://<subdomain>.zendesk.com/api/v2/tickets/60.json",
"id": 60,
"external_id": null,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2016-05-05T13:30:01Z",
"updated_at": "2016-05-05T13:30:01Z",
"type": null,
"subject": "test subject",
"raw_subject": "test subject",
"description": "test body",
"priority": null,
"status": "open",
"recipient": null,
"requester_id": 5917202647,
"submitter_id": 5917202647,
"assignee_id": 5917202647,
"organization_id": 3740197137,
"group_id": 28473587,
"collaborator_ids": [],
"forum_topic_id": null,
"problem_id": null,
"has_incidents": false,
"due_at": null,
"tags": [],
"custom_fields": [],
"satisfaction_rating": null,
"sharing_agreement_ids": [],
"fields": [],
"brand_id": 1090897,
"allow_channelback": false
}
我是不是做错了什么?
嗯,我进行了相同的 API 调用(使用我的 creds/subdomain)并且成功了,将 "status" 设置为我选择的任何选项(新的、待定的、已解决的)。
您确认您的所有凭据和子域都已正确输入吗?此外,请检查您 Zendesk 帐户中的 API 设置。尝试创建一个新令牌并保存设置。
如果 API 令牌仍然无效,可以尝试使用密码进行身份验证或通过 curl 以外的方式发出请求。
事实证明,如果您将工单分配给只有一个 member/agent 的组,工单会自动分配给该单独的代理。因此,任何已分配给特定代理的工单将自动设置为打开而不是新工单。
因为我使用的是测试子域,所以我是唯一的代理,所以它会自动将状态从 "new" 更新到 "open"。
Zendesk API 文档指出,当通过 API 创建工单时,status
字段可以设置为 "new" (https://developer.zendesk.com/rest_api/docs/core/tickets#create-ticket),但是,如果我使用以下命令调用 API 并指定 status
的值,它会创建一个标记,但仍会将 status
设置为 open
的默认值:
curl -u <username>/token:<api_token> https://<subdomain>.zendesk.com/api/v2/tickets.json -d '{"ticket": {"subject":"test subject", "comment": { "body": "test body" }, "status": "new" } }' -H "Content-Type: application/json" -v POST
响应正文的相关部分是:
"ticket": {
"url": "https://<subdomain>.zendesk.com/api/v2/tickets/60.json",
"id": 60,
"external_id": null,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2016-05-05T13:30:01Z",
"updated_at": "2016-05-05T13:30:01Z",
"type": null,
"subject": "test subject",
"raw_subject": "test subject",
"description": "test body",
"priority": null,
"status": "open",
"recipient": null,
"requester_id": 5917202647,
"submitter_id": 5917202647,
"assignee_id": 5917202647,
"organization_id": 3740197137,
"group_id": 28473587,
"collaborator_ids": [],
"forum_topic_id": null,
"problem_id": null,
"has_incidents": false,
"due_at": null,
"tags": [],
"custom_fields": [],
"satisfaction_rating": null,
"sharing_agreement_ids": [],
"fields": [],
"brand_id": 1090897,
"allow_channelback": false
}
我是不是做错了什么?
嗯,我进行了相同的 API 调用(使用我的 creds/subdomain)并且成功了,将 "status" 设置为我选择的任何选项(新的、待定的、已解决的)。
您确认您的所有凭据和子域都已正确输入吗?此外,请检查您 Zendesk 帐户中的 API 设置。尝试创建一个新令牌并保存设置。
如果 API 令牌仍然无效,可以尝试使用密码进行身份验证或通过 curl 以外的方式发出请求。
事实证明,如果您将工单分配给只有一个 member/agent 的组,工单会自动分配给该单独的代理。因此,任何已分配给特定代理的工单将自动设置为打开而不是新工单。
因为我使用的是测试子域,所以我是唯一的代理,所以它会自动将状态从 "new" 更新到 "open"。