WordPress Twilio Webhook JSON выпуск - PullRequest
1 голос
/ 11 июня 2019

Пытается найти ответ на эту проблему.

У меня есть веб-сайт на WordPress, и я написал простой веб-крюк для вызова из Twilio и возврата сообщения.

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

Мой webhook это:

function register_receive_message_route() {
  register_rest_route('receivedx/v1', 'recvsms', array(
    'methods' => WP_REST_SERVER::READABLE,
    'callback' => 'trigger_receive_sms',
    ));
}

function trigger_receive_sms($from) {
  header ('Content-Type:application/json');
  return '{"Message":"Thank you for accepting this position.","From":"From MCC","Body":"Hello"}';
}

Когда я нажимаю на мой URL-адрес, он возвращает строку JSON, как и ожидалось, так:

"{\"Message\":\"Thank you for accepting this position.\",\"From\":\"From MCC\",\"Body\":\"Hello\"}"

однако, когда он попадает в Twilio, он искажается и выглядит так:

"body": "\"{\\\"Message\\\":\\\"Thank you for accepting this position.\\\",\\\"From\\\":\\\"From MCC\\\",\\\"Body\\\":\\\"Hello\\\"}\""

Затем Twilio выдает мне ошибку, сообщая мне: «Body: Ошибка отправки сообщения: требуется тело сообщения».

В моем виджете нет ничего особенного, и после многих дней общения с командой Twilio они уверяют меня, что мой поток настроен правильно.

Я пытался сделать замену на \\ с \, но он все равно показывает то же самое, когда добирается до Twilio.

Я пробовал один и тот же webhook на 3-х разных установках WordPress, и все с одинаковым результатом Я начинаю понимать, что Twilio что-то делает с ним, когда его возвращают.

Кто-нибудь видел такое поведение, выходящее из WordPress раньше?

Спасибо

1 Ответ

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

Разрешается НЕ кодировать данные в JSON перед отправкой в ​​Twilio.

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

EG:

$ message ['message'] = "Это сообщение";$ message ['moredata'] = "Это больше данных";return $ message

Затем вы можете получить результаты из виджета, используя {{widget. <>. parsed.message}} и т. д.

Надеюсь, это кому-нибудь поможет.

...