Twilio PHP 网络挂钩?

Twilio PHP Web Hooks?

我在使用 Studio 的 Twilio 中有一个 webhook,大部分工作正常,直到从 Web 服务器获取响应。

查看 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.

这很奇怪,因为尸体显然在那里。

我的网络钩子是:

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 天了...我哪里出错了?

如果我没有正确回答您的问题,我深表歉意。我不清楚您的设置如何、您的 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();
}

告诉我们进展如何。如果我说错了,请详细说明,我会尽量理解的。

原来我只需要将输出转换为 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();
}