twilio sms ключевое слово автоответчик поиск входящего тела

Может кто-нибудь помочь доработать предложенный код от Twilio для поиска по телу входящего sms для отправки разных ответов? https://www.twilio.com/help/faq/sms/how-do-i-build-a-sms-keyword-response-application.

Необходимо изменить код, чтобы он искал во входящем SMS-сообщении ключевое слово "ведение журнала", например «Нужна помощь при входе в систему», тогда будет отправлен другой ответ.

/* Controller: Match the keyword with the customized SMS reply. */
function index(){
$response = new Services_Twilio_Twiml();
$response->sms("Hi. Received your message. We will contact you via email on file.");
echo $response;
}
function password(){
$response = new Services_Twilio_Twiml();
$response->sms("Hi. Received your message. We will contact you via email on file. #Password");
echo $response;
}

function logging(){
$response = new Services_Twilio_Twiml();
$response->sms("Hi. Received your message. We will contact you via email on file. #Logging");
echo $response;
}

/* Read the contents of the 'Body' field of the Request. */
$body = $_REQUEST['Body'];
/* Remove formatting from $body until it is just lowercase 
characters without punctuation or spaces. */
$result = preg_replace("/[^A-Za-z0-9]/u", " ", $body);
$result = trim($result);
$result = strtolower($result);

/* Router: Match the ‘Body’ field with index of keywords */
switch ($result) {
case 'password’':
    password();
    break;
case 'logging':
    logging();
    break;

/* Optional: Add new routing logic above this line. */
default:
    index();

}


person cherrie    schedule 25.10.2015    source источник


Ответы (1)


Рики из Twilio снова здесь.

Рад, что у вас все работает на вашем хосте! Как вы видели, текущий образец кода будет соответствовать только в том случае, если кто-то отправит точное слово «ведение журнала» в качестве тела сообщения. Если вы хотите сопоставить текст в строке (например: «нужна помощь при входе в систему»), я бы использовал PHP _ 1_. С этим вы можете сделать что-то вроде этого:

/* Read the contents of the 'Body' field of the Request. */
$body = $_REQUEST['Body'];
// Check to see if contains the word "logging"
if(stripos($body, "logging") !== FALSE) {
  // message contains the word "logging"
} else {
  // message does not contain the word "logging"
}
person rickyrobinett    schedule 26.10.2015