все. Я пытался исследовать этот вопрос на этом форуме и в других местах в Интернете. Я в тупике. Надеясь, что кто-то может помочь.
У меня возникла проблема с использованием Keyboard Maestro для отправки JSON в API Zendesk для добавления пользователей в группы. Я делаю это через CURL в сценарии оболочки Bash. Прежде чем вы решите, что это проблема Zendesk API, потерпите меня! Я действительно думаю, что это КМ или что-то глупое, что я делаю в КМ. (Возможно последнее!)
Сценарий Bash, подобный этому запуску из KM, работает отлично:
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)
Но я хочу передать информацию user_id и group_id сценарию bash через переменную KM ($KMVAR_CURL_Text).
Содержимое переменной $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. Кто-нибудь знает, что я делаю неправильно? Может быть, что-то с экранированием, неэкранированием или текстовой кодировкой, связанной с переменной?
Спасибо!
Марк :-)