全部。我试图在这个论坛和其他地方在线研究这个问题。我难住了。希望有人可以提供帮助。
我在使用 Keyboard Maestro 将 JSON 发送到 Zendesk API 以将用户添加到组时遇到问题。我正在通过 CURL 在 Bash shell 脚本中进行操作。在您认为这是 Zendesk API 问题之前,请耐心等待!我真的认为这是 KM 或我在 KM 中做的一些愚蠢的事情。(可能是后者!)
像这样从 KM 运行的 Bash 脚本可以完美运行:
curl https://yoursite.zendesk.com/api/v2/group_memberships/create_many.json \
-X POST -d '{"group_memberships": [{"user_id": 123, "group_id": 1}, {"user_id": 456, "group_id": 1}, {"user_id": 789, "group_id": 1}]}' \
-H "Content-Type: application/json" -v -u (email address here):(password here)
但是,我想通过 KM 变量 ($KMVAR_CURL_Text) 将 user_id 和 group_id 信息传递给 bash 脚本。
$KMVAR_CURL_Text 变量内容与 user_id 和 group_id 信息匹配,我有上面的手动脚本。我已经通过 JSON 验证器运行了变量文本。没关系。我已经手动将变量数据粘贴回 bash 脚本中,没关系。
但是,如果我使用变量 $KMVAR_CURL_Text:
'{"group_memberships": [{"user_id": 123, "group_id": 1}, {"user_id": 456, "group_id": 1}, {"user_id": 789, "group_id": 1}]}'
使用 shell 脚本:
curl https://yoursite.zendesk.com/api/v2/group_memberships/create_many.json \
-X POST -d $KMVAR_CURL_Text \
-H "Content-Type: application/json" -v -u (email address here):(password here)
Zendesk 的 API 告诉我:
< HTTP/1.1 400 Bad Request
< Server: nginx
< Date: Mon, 21 Sep 2015 15:09:21 GMT
< Content-Type: application/json; charset=UTF-8
< Content-Length: 111
< Connection: keep-alive
< Status: 400 Bad Request
< X-Zendesk-API-Version: v2
< X-Zendesk-API-Warn: Removed restricted keys ["'{\"group_memberships\":"] from parameters according to whitelist
我很高兴与 Zendesk 一起解决这个问题。但是,由于我可以手动完成这项工作,我觉得问题出在我或 KM 身上。有人知道我做错了什么吗?可能与变量相关的转义、非转义或文本编码?
谢谢!
马克:-)