WordPress Twilio Webhook JSON issue



努力寻找这个问题的答案。

我有一个WordPress网站,并编写了一个简单的webhook,可以从Twilio调用并返回一条消息。

在Twilio中,我正在使用Studio Flow来调用Web钩子。一切都运行良好,直到从触发器读取回调数据为止。

我的网络钩子是这样的:

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"}';
}

当我点击我的网络钩子网址时,它会按预期返回 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 给我一个错误,告诉我"正文:发送消息失败:消息正文是必需的。

我的小部件没有什么特别之处,经过许多天的与Twilio团队的聊天,他们向我保证我的流程设置正确。

我尝试将 \\ 替换为 \,但是当它到达 Twilio 时它仍然显示相同。

我在 3 个不同的 WordPress 安装上尝试了相同的网络钩子,结果都相同。我开始意识到 Twilio 在返回时正在对它做一些事情。

以前有没有人见过WordPress的这种行为?

谢谢

通过在发送到 Twilio 之前不将数据编码为 JSON 来解决。

只需为要发送的内容创建一个数组并返回该数组,Twilio Studio 就会在处理之前对其进行编码。

例如:

$message['消息'] = "这是一条消息"; $message['更多数据'] = "这是更多数据"; 返回$message

然后,您可以使用 {{widget.<>.parsed.message}} 等从小部件中检索结果...

希望这对某人有所帮助。

最新更新