Announcement

Collapse
No announcement yet.

обработка ответа после вызова внешнего api

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • dimyy
    replied
    Возможно данная картинка поможет: отправка запроса с последующим извлечением данных из ответа.

    Так же вариант схемы процесса с обработкой ошибок запросов. Единственный нюанс - если при ошибке (что то отличное от 20* в коде ответа) возвращаются данные поймать их в процессе без переработки исходного кода не получится
    Attached Files
    Last edited by dimyy; 08-08-2021, 06:04 AM.

    Leave a comment:


  • Evgeny
    commented on 's reply
    сервис отрабатывает. постменом проверили, все ОК. а каким образом тогда можно забрать сами файлы из поля ? есть какие то нюансы ? что в Пейлоад передавать , что бы отработало ? пытаюсь доступиться вот так : "files[]":"{$documents}" но не отрабатывает. :-( documents - поле типа "несколько вложений"
    Last edited by Evgeny; 07-24-2020, 02:44 PM.

  • Maximus
    replied
    Теоретически да, если другой сервис обрабатывает такой тип запросов и принимает файлы.

    Leave a comment:


  • Evgeny
    commented on 's reply
    попробуем, спасибо. А еще вопрос по тому же методу POST. я через него могу отправить файлы, которые лежать в CRM в поле типа File ?

  • Maximus
    replied
    Как вариант, реализовать все это через Hook https://docs.espocrm.com/development/hooks/.

    Leave a comment:


  • Evgeny
    commented on 's reply
    печально . а если у меня нет возможности изменять внешний сервис, какие варианты есть тогда реализации данной задачи ? вот просто есть внешнее api и мне надо его дернуть и получить ответ, но поменять его или добавить там какой то вызов не могу - єто другая компания... :-(

  • Maximus
    replied
    > о, а что значит возвратный запрос в еспо? где его надо прописывать ? (видимо где то здесь и есть корень решения)

    Наверное я вас неправильно понял. Я полагал что вы из EspoCRM отправляете запрос кудато на сайт а он вам в ответ запускает отдельный запрос и отправляет в Еспо данные. А выходит что вы отправляя Post запрос ожидали получить информацию в ответ. Верно? Тут нужно понимать что для получения информации из сторонних ресурсов должен отправляться запрос GET. Workflow или BPM могут отправить запрос только по методу POST и PUT. Функционала для отправки запроса по методу GET через UI нет. Таким образом ваша логика должна быть построена следующим образом:
    1. EspoCRM используя действие Workflow или BPM отправляет POST запрос кудато на ваш сервис.
    2. На вашем сервисе должен быть скрипт который принимает на вход POST запрос от EspoCRM, формирует ответ и отправляет соответствующий запрос в EspoCRM.

    Leave a comment:


  • Evgeny
    commented on 's reply
    о, а что значит возвратный запрос в еспо? где его надо прописывать ? (видимо где то здесь и есть корень решения)

    мы прописывали тольок отправку запроса методом post , предполагая, что есть обработчик возвращаемых значений... так как api возвращает значения...

  • Maximus
    replied
    Можете показать пример полного возвратного запроса в Еспо? К примеру ту часть URI которая начинается с /api/v1/... . И Payload сам.
    Также можете включит редим логирования DEBUG как описано здесь https://docs.espocrm.com/administrat...e-for-a-logger и проверять описание ошибок в логе. Если Payload неправильный он будет выкидывать чтото типа Bad server request и прочее.

    Leave a comment:


  • Evgeny
    commented on 's reply
    В систему понятно, здесь вопросов нет. Єто все работает. ТОкен - єто авторизационный ключ внешней системы, там он и обрабатывается, по поводу переменной все верно, переменные определены - здесь все хорошо....
    Сама отправка запроса идет - внешняя система вызвается и получает все переменные.
    При этом внешняя система в ответ на запрос вовзращаяет ряд значений, которые я хочу в дальнейшем использовать в CRM. Например
    У меня есть внешняя система , например платежей. Я передаю ей значение (ИД пользователя и сумму) в ответ получаю статус платежа. Мне нужно "поймать ответ" и записать его в поле CRM ...
    Вот с єтой частью как раз и проблемы - не могу понять каким образом получить ответ.

    Если брать структуру запроса, то постмен например выдает по АПИ след информацию:

    {"status":"200","error":"","data":[]}

    Вот как мне забрать значение статуса, например ?

    И если будет ошибка - описание ошибки ?

  • Maximus
    commented on 's reply
    UPD. Прошу прощения. Я написал Entry Point. Ошибка. Я имел ввиду API Key https://docs.espocrm.com/development...ion-by-api-key.

  • Maximus
    replied
    Ясно.
    Ну как понять какие слать запросы в систему я вам показал. С чем еще возникли вопросы?
    Я возможно могу быть и не прав поскольку не владею всей информацией о ваших логических процессах, но вот 2 примечания по поводу вашего Payload:
    1. Вы передаете значение поля "token". У вас действительно такое поле имеется, или это токен самого запроса (как куки и пр.). Если это токен вашего запроса то тогда он должен прописываться в "Заголовки"
    2. $$myFullAddress - следует понимать что это вызов переменной (не поля) в тело загрузки. В ВРМ как правило перед процессом в блоке со скриптами описываются все эти переменные.

    Также вам следует понимать и следующее. Для отправки запросов из вне в СРМ систему, для того чтобы система не вернула код 403, необходимо в хедерах запроса передавать либо логин и пароль пользователя системы у которого есть права на подобные действия (создание, обновление записи и пр.) либо создать Entry Point. Подробнее читайте здесь https://docs.espocrm.com/development/api/.

    Leave a comment:


  • Evgeny
    commented on 's reply
    телеграмм как пример одного из апи, может быть любое другое апи, просто это было под рукой и проще проверять, что куда то что то передается.... вопрос каким образом отработать ответ, получаемый из api ?

  • Maximus
    replied
    Так вы хотите переслать данные в телеграм? Ознакомьтесь с данным материалом https://www.espocrm.com/blog/sending...ith-workflows/.

    Leave a comment:


  • Evgeny
    replied
    Картинки с процесса и самого АПИ , как пример
    Attached Files

    Leave a comment:

Working...
X