Twilio PHP веб-хуки? - PullRequest
       14

Twilio PHP веб-хуки?

1 голос
/ 09 июня 2019

У меня есть веб-крючок в Twilio с использованием Studio, и большинство из них работает нормально вплоть до получения ответа от веб-сервера.

Глядя в журнал Twilio, я вижу ответ, возвращающийся так:

  "widgets": {
    "ReplyWithJobDetail": {},
    "AskServer": {
      "status_code": 200,
      "content_type": "text/xml",
      "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Message>Thank you for accepting this position.<From>From=MCC</From><Body>Body=Here is the body content</Body></Message></Response>"
    },

Но я получаю сообщение об ошибке в сообщении Twilio:

Body: 
Failure sending message: Message body is required.

Что странно, потому что тело, очевидно, там.

Мой webhook:

function trigger_receive_sms($from) {
  header ('Content-Type:text/xml');
  echo ('<?xml version="1.0" encoding="UTF-8"?>');
  echo ('<Response>');
  echo ('<Message>Thank you for accepting this position.');
  echo ('<From>From=MCC</From>');
  echo ('<Body>Body=Here is the body content</Body>');
  echo ('</Message>');
  echo ('</Response>');
  die();
}

Это в WordPress и также имеет установленный плагин Twilio.Core.

Я пытался заставить это работать в течение 4 дней ... Где я иду не так?

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Оказывается, мне просто нужно было преобразовать вывод в JSON ...

Сделал это со следующим:

function trigger_receive_sms($from) {
  header ('Content-Type:application/json');
  $message = '<?xml version="1.0" encoding="UTF-8"?>';
  $message .= '<Response>';
  $message .= '<Message>Thank you for accepting this position.';
  $message .= '</Message>';
  $message .= '</Response>';
  $simplexml = simplexml_load_string($message);
  $json = json_encode($simplexml);
  return $json;
  die();
}
0 голосов
/ 09 июня 2019

Если я не правильно понял ваш вопрос, прошу прощения.Мне непонятно, каковы ваши настройки, что содержит ваш поток Studio, что с WordPress и т. Д ...

Вот TwiML для ответа на входящее сообщение:

<Response>
    <Message>Hello from Twilio!</Message>
</Response>

Нет необходимости в From, потому что он будет отправлен с номера вашего Twilio, а body сообщения находится прямо между тегами <Messsage>, поэтому нет необходимости также в тегах <Body>.

Как таковой, попробуйте с:


function trigger_receive_sms($from) {
  header ('Content-Type:text/xml');
  echo ('<?xml version="1.0" encoding="UTF-8"?>');
  echo ('<Response>');
  echo ('<Message>Thank you for accepting this position.');
  echo ('</Message>');
  echo ('</Response>');
  die();
}

Дайте нам знать, как это происходит.Если я ошибся, пожалуйста, дайте больше деталей, я постараюсь понять лучше.

...