Announcement

Collapse
No announcement yet.

Workflow SendRequest

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

  • Workflow SendRequest

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

    У меня была задача прикрутить отправку SMS через девайс GoIP4.
    Делается это, в принципе, просто.
    На первом фото указан пример для отправки SMS.
    Параметры:
    smskey - в принципе, случайный ID для получения результата отправки сообщения
    action - всегда будет SMS
    line? - тут необходимо указать через какую симку отправлять. В примере, указан второй слот, т.е. line2=1
    telnum - вроде как понятно )), кстати, номера могут быть как и в локальном формате так и в международном (когда начинаются через +)
    smscontent - собственно само сообщение. Правда в большинстве указаний производителя указано ограничения до 3000 символов (честно не проверял).

    В заголовках добавлена базовая авторизация.
    Ключ генерируемый сервером можно получить либо на соответствующих сервисах онлайн (т.н. https://www.blitter.se/utils/basic-a...der-generator/) либо съэмулировав запрос с помощью утилиты curl:
    Code:
    curl -d "ваши данные запроса" -x POST "ваш URl адрес" -v -u логин:пароль
    где в подробной информации будет показан вам ключ для базовой авторизации.

    Итак. Было бы все так просто - не было бы этого поста ))
    не буду размазывать как я бегал за тараканами 2 дня, итог:

    Почему-то было принято решение разработчиками в файле \application\Espo\Modules\Advanced\Core\Workflow\A ctions\SendRequest.php указать опцию для curl
    Code:
    curl_setopt($ch, \CURLOPT_NOBODY, true);
    именно для стандартного запроса типа application/x-www-form-urlencoded

    Вроде как это не должно влиять на POST запрос, но почему-то только комментирования данной строки все заработало.

    Спасибо. Комментарии приветствуются ))

  • #2
    Здравствуйте,
    а был ли бы произведен запрос корректно не удаляя строку кода curl_setopt($ch, \CURLOPT_NOBODY, true); и изложив данные загрузки в таком формате:
    Code:
    {"smskey":"5e4e845e", "action":"SMS", "line2":1, "telnum":"{$phone}", "smscontent":"{$text}"}
    ?

    UPD.
    Возможно что "line2":1 должно быть передано как "line2":1. Все зависит от того, какой тип данных принимает поле.
    Last edited by Maximus; 03-31-2020, 12:46 PM.

    Comment


    • #3
      Добрый день, Maximus
      Изначально, я проверял отправку запросов через консоль с помощью curl
      почему-то эта железка запросы в формате JSON не хочет воспринимать ((

      И я сам не могу понять, почему параметр CURLOPT_NOBODY влияет, т.к. он отключает только получение ответа

      Comment

      Working...
      X