Может кто-то помочь пересмотреть предложенный код из 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();
}
Рики из Twilio здесь снова.
Рад, что у вас есть все, что работает на вашем хосте! Как вы видели, текущий образец кода будет соответствовать только если кто-то отправит точное слово «logging» в качестве своего тела сообщения. Если вы хотите stripos
текст в строке (например: «нужна помощь в регистрации»), я бы использовал функцию stripos
PHP. С этим вы могли бы сделать что-то вроде этого:
/* 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" }