在Twilio回调中获取消息正文并在响应中使用它

时间:2017-09-07 10:49:39

标签: twilio twilio-api wordpress-rest-api

从TwiML Bin我发现了对{{body}}{{from}}的引用,但就回调而言,它们在TwiML中不起作用。我在回调中收到消息详细信息时遇到问题,但我无法找到合适的参考文档。

这就是我所拥有的(这已得到确认):

add_action( 'rest_api_init', 'register_receive_message_route');

/**
 * Register the receive message route.
 *
 */
function register_receive_message_route() {
  register_rest_route( 'srsms/v1', '/receive_sms', array(
    'methods' => 'POST',
    'callback' => 'trigger_receive_sms',
  ) );
}

/**
 * The Callback.
 *
 */
function trigger_receive_sms() {

  $y = "this works"; //$_POST['Body'], 0, 1592); << this doesn't

  echo ('<?xml version="1.0" encoding="UTF-8"?>');
  echo ('<Response>');
  echo ("  <Message to='+NUMBER'>xxx $y xxx</Message>");
  echo ('</Response>');

  die();
}

我缺少的是将正文传递给转发的邮件。我在回电结束时尝试了很多片段,但我真的只是在这里猜测。

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

Twilio makes a POST request to your URL时,它会将有关SMS的所有数据作为URL编码参数发送到请求正文中。您可以在此处查看文档中发送的所有参数:https://www.twilio.com/docs/api/twiml/sms/twilio_request#request-parameters

当您收到对WordPress URL的请求时,回调函数会收到WP_REST_Request个对象作为参数。此请求对象可以访问作为请求的一部分发送的所有参数,您可以使用$request['paramName']通过阵列访问来访问它们。

因此,要发送邮件的正文,您需要像这样调用$request['Body']

function trigger_receive_sms($request) {
  $body = $request['Body'];

  // return TwiML
}

让我知道这是否有帮助。