Я использую библиотеку twilio php для отправки смс и голосовых сообщений пользователям. Я могу отправить сообщение пользователю с помощью здесьhttps://twilio-php.readthedocs.org/en/latest/‘в разделе «Отправить SMS», но не могу понять, как отправить подтверждение вызова, потому что в моем случае я отправляю код подтверждения пользователю.
Например, я хочу отправить голос, сказав этот код «123456». Но этот код будет случайным все время. Так что вы можете помочь мне с этим.
Я купил план и номер телефона, который позволяет отправлять SMS, MMS, голос.
Twilio разработчик евангелист здесь.
Вместо того, чтобы использовать обычный SMS API Twilio для этого, я могу порекомендовать вам взглянуть на Authy? Authy является частью Twilio и обеспечивает проверку телефона и двухфакторную аутентификацию в качестве услуги.
На сайте Twilio есть отличный учебник как реализовать проверку аккаунта на вашем сайте с помощью PHP с Authy. Я рекомендую вам прочитать это и посмотреть, соответствует ли он вашим потребностям.
Дайте мне знать, если это поможет.
Через 3 часа я нашел решение. Я надеюсь, что это поможет другим и сэкономит их драгоценное время. Вот полный процесс.
Сначала необходимо создать приложение TWIML, а затем назначить это приложение своему номеру телефона. Теперь создайте функцию, чтобы сделать вызов twilio, как это
function make_call{
$account_sid = ""; // Your Twilio account sid
$auth_token = ""; // Your Twilio account token
$twilio_number = 'your twilio number';
$to_number = 'number of user to which you want to make call';
$client = new Services_Twilio($account_sid,$auth_token);
//this is the url which twilio will hit after making a call, to get xml response which the computer will speak( if you want to send addition parameters you can do this by adding query string ). We are making here get request.
$url = "http://test.com/say_words/?user_id=$logged_user_id";
try
{
$call = $client->account->calls->create($twilio_number, $to_number, $url, array('Method' => 'GET'));
// print $call;
// return $call;
// print_r($call->sid);
// print_r($call);
$error['call_id'] = $call->sid;
$error['success'] = 'You will receive a call shortly on your mobile number.';
// die();
}
catch(Exception $e)
{
// $err = urlencode($e->getMessage());
// print_r($err);
// die();
$error['errors'] = 'Error while makin call. Please try again.';
}
}
Теперь это другая функция, которую twilio будет использовать для ответа xml. Если вы не создадите эту функцию, то Twilio позвонит, но ничего не скажет. Так что создайте такую функцию
public function say_words()
{
$newsXML = new SimpleXMLElement("<Response></Response>");
$newsIntro = $newsXML->addChild('Say', "Your confirmation code is $formatted");
$newsIntro->addAttribute('loop', '3');
$newsIntro->addAttribute('voice', 'woman');
Header('Content-type: text/xml');
echo $newsXML->asXML();
die();
}
Twilio need this kind of xml response
<?xml version="1.0"?>
<Response>
<Say loop="3" voice="woman">Your confirmation code is 7 0 2 8 4 6</Say>
</Response>
Вы можете проверить другие ответы XML здесь
https://www.twilio.com/docs/api/twiml