1b.app
Скопирована ссылка -

json запрос действием передать бизнес процесс в API

пытаюсь написать апи запрос джойсон
получается так
{"id":"3589","phonenumber":"0994259117","api_key":xxxxxxxxxx"}

https://prnt.sc/urtvw6

а сервер хочет часть параметров в массив
{"id":"3589", "params": {"phonenumber": "0994259117", "api_key": "xxxxxxxx"}}

как это можно сделать?

Ответы:

Попробуйте прописать через слэш /
Т.е. сперва вы указываете первый параметр, допустим это id в одном поле, чтобы указать вложенность номера телефона укажите в следующее поле id/phonenumber и id/api_key
без конкретного примера использования в действии точнее сказать не могу.
02.10.2020, 15:34

такой параметр просто не попадает в запрос
http://prntscr.com/urw4ml

https://adapter.crm-onebox.com/admin/shop/workflow/14/procedure/15/?status=0

и ошибку в комментарий пишет
http://prntscr.com/urw69g
02.10.2020, 15:51


Мироненко Дмитрий
Клиент писал/а:
такой параметр просто не попадает в запросhttp://prntscr.com/urw4mlhttps://adapter.crm-onebox.com/admin/shop/workflow/14/p... ошибку в комментарий пишетhttp://prntscr.com/urw69g
извините, я подумал что вы передаете не поля процесса, а поля в кастомном блоке ниже http://i.imgur.com/yMnmEXy.png
там как раз есть то что нужно
02.10.2020, 15:56

http://prntscr.com/ury3w1

песня...

если [requestUrl] и [request] сложить в адресной строке браузера, то получаем нужный результат
http://prntscr.com/ury65l

но почему-то через действие "передать бизнес процесс в API" ответа нет?
02.10.2020, 17:22

Попробуйте также подергать в настройках действия "Используемый метод авторизации", например Basic
или в заголовки что-то перенести из урл-адреса "Дополнительные заголовки запроса (укажите несколько через точку с запятой)"

Мироненко Дмитрий
Клиент писал/а:
но почему-то через действие "передать бизнес процесс в API" ответа нет?
я так понял у вас ответы в комменты должны подгрузиться? попробуйте в другое поле записать...
Очень многое зависит от самого АПИ в которое стучимся, поэтому сложно что-то конкретное подсказать...
02.10.2020, 17:35

да и с обработкой ответа вы явно что-то намудрили http://i.imgur.com/UIEMBI7.png
02.10.2020, 17:42


Щербатых Иван Александрович Сотрудник писал/а:
да и с обработкой ответа вы явно что-то намудрили http://i.imgur.com/UIEMBI7.png


если я вижу такой ответ всё время
http://prntscr.com/urzl72

его и пытаюсь обработать
02.10.2020, 18:33

я могу поменять кодировку запроса?
и реально посмотреть что отсылает бокс можно на каком-то сервисе?
02.10.2020, 21:51

Если не ошибаюсь, то для JSON по умолчанию кодировка UTF-8. Поменять в самом действии возможности нет.
А логи вы и так видите, а именно что отправляется https://prnt.sc/ury3w1
Что вы подразумеваете под сервисом? Вы же шлете запрос на конкретный ресурс, а именно в https://blackbox.net.ua/ - вот там возможно и есть логи того, что заходит.
05.10.2020, 12:29


Мироненко Дмитрий
Клиент писал/а:
песня...

если [requestUrl] и [request] сложить в адресной строке браузера, то получаем нужный результат



У нас та же ситуация. В браузере все ок, ответ правильный и к-во запросов уменьшается на 1. А через бокс никак https://i.imgur.com/CcPUncE.png/

Подскажите пожалуйста, вы нашли способ получить правильный ответ через бокс?
14.01.2021, 16:31

как написать параметры - да.

по логам даже всё правильно получается с запросом
но, сайт всё равно отдаёт ошибку.
15.01.2021, 12:50


Мироненко Дмитрий
Клиент писал/а:
как написать параметры - да.

по логам даже всё правильно получается с запросом
но, сайт всё равно отдаёт ошибку.


Спасибо за ответ.
Жаль, что пока не настроили ((
С прописывание параметров тоже разобрались, хоть и чуть иначе. Осталось понять почему напрямую работает, а через бокс нет.
15.01.2021, 12:58


Мироненко Дмитрий


С действием, обсуждаемым в задаче, продолжаю потихоньку бодаться, а пока настроила другим способом получение информации. Делюсь :-)

Сначала с помощью действия "Записать значение в дополнительное поле" и переменных я создала параметры запроса включая "data=". https://i.imgur.com/usbSLle.png/
Текст таков:
data=%7B%22id%22%3A%22{|$orderid|}%22%2C%22params%22%3A%7B%22phonenumber%22%3A%22{|$clientphone|}%22%2C%22api_key%22%3A%22YourApiKey%22%2C%22name%22%3A%22{|$clientfio|}%22%7D%7D
В тексте уже вставлены переменные номера заказа, телефона и фио клиента, а текст YourApiKey (замылен на скриншоте) нужно заменить на ваш ключ апи в чистом виде (без кавычек и скобок). И внимательно с пробелами в запросе. С лишними пробелами (например вокруг ключа) у меня в ответ приходила та самая 101-я ошибка.

Затем в действие "Выполнить GET запрос с параметрами" в GET URL написала http://blackbox.net.ua/api/, а в GET Параметры - переменную для дополнительного поля заказа, в которое вставляла запрос действием выше. Знак вопроса между URL и параметрами бокс вставляет сам, поэтому его не писала нигде. Текст ответа в дополнительное поле заказа, только в другое https://i.imgur.com/S3R4d7p.png/

И последнее, если нужно, перенаправила заказ на специальный этап для случаев с клиентами в черном списке. В действии "Изменить бизнес-процесс и этап в зависимости от значений полей" проверила дополнительное поле заказа с ответом на наличие в тексте ответа слова data, т.к. в случае ошибки или отсутствия клиента в списке массива data в ответе нет.
https://i.imgur.com/JXBjoPW.png/

Если нужно посмотреть полный ответ, можно вывести доп.поле в интерфейс заказа или открыть историю заказа.

Возможности по обработке ответа при таком методе значительно более узкие, но зато работает и уже хоть какая-то автоматизация :-)

з.ы.: есть у меня подозрения что стандартное действие "Передать бизнес-процесс в API" тоже в запрос вставляет знак вопроса или что-то еще между URL и параметрами, из-за этого и ошибка. Чтобы проверить нужно в URL вставить только "http://blackbox.net.ua/api/", и сделать так чтобы параметры были в виде "data={...}". А вот как это сделать я так и не придумала.
15.01.2021, 18:02

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий