全て。この問題については、このフォーラムやオンラインの他の場所で調べてみました。私は困惑しています。誰かが助けてくれることを願っています。
Keyboard Maestro を使用して JSON を Zendesk API に送信し、ユーザーをグループに追加する際に問題が発生しています。BashシェルスクリプトでCURLを介して実行しています。これが 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}]}'
シェルスクリプトで:
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 にあるように感じます。誰が私が間違っているのか分かりますか? たぶん、変数に関連するエスケープ、非エスケープ、またはテキストエンコーディングの何か?
ありがとう!
マーク:-)