Как отправить нескольким получателям (БЕЗ ЗАПУСКА) при использовании переменного буквенно-цифрового идентификатора отправителя?
Мне было интересно, если есть способ установить несколько получателей БЕЗ зацикливания на списке получателей на моем конце?! Также самое главное при использовании переменного буквенно-цифрового идентификатора отправителя, а не при покупке номера twilio?
Я могу сделать все это для одного получателя, как это:
$twilio_client->messages->create(
'+64*******', //to
[
'from'=> 'foo',
'body' => 'bar'
]);
Работает отлично. Тем не менее, не работает с несколькими приемниками.
Также обратите внимание, что это было чертовски легко реализовать smsbroadcast.com.au
и передать все это простым вызовом (простой вызов, быстро-быстро, супер-легкая документация - в отличие от twilio, который содержит миллиард строк запутанной документации, 200 аналогичных продуктов и ДА НЕТ прямого API, чтобы проверить баланс, или сделать простую вещь, такую как несколько получателей!!)
1 ответ
После продолжительной поддержки и прочтения переписанного эссе (так называемой документации), наконец, я нашел способ добиться всего этого.
[Шаг 1: Конфигурация]
Вы должны внедрить продукт Notify, который является отдельным продуктом, а не продуктом Message.
Так из левого меню Notify> Service> add New
, Здесь вам нужно добавить Messaging Service
и выберите его здесь для уведомления.
На странице службы обмена сообщениями вам будет предложено купить номер twilio. Вместо этого просто нажмите на Configure
в левом меню и введите все необходимые детали.
В частности, и важно, убедитесь, что у вас есть Alpha Sender ID
отмечен и введен текст альфа-отправителя по умолчанию. Это будет запасной вариант по умолчанию в случае, если ваш вызов API не сможет принять from
пары.
,
[Шаг 2: вызов API]
//$notify_service_SID = the SID from the Notify Service you added in step 1
$client = new Client($this->Account_SID, $this->auth_token);
$notify_obj = $client->notify->services($notify_service_SID);
//you need receivers in a JSON object such as the following, plus make sure numbers are starting with country code to ensure alpha sender works correctly
$receivers_json = [0=>'{"binding_type":"sms","address":"+614********"}']+[1=>'{"binding_type":"sms","address":"+614*******"}']
$call_ret = $notify_obj->notifications->create([
'toBinding'=> $receivers_json,
'body' => $msg, //actual message goes here
'sms' => [
'from'=> $sender //alphanumeric variable sender
],
]);
,
[Шаг 3: Проверка на наличие ошибок] Нет прямого способа проверить все ошибки в twilio при реализации Notify. Вот мой смешанный подход.
Обработка исключений в
notifications->create
вызов$call_ret
буду иметьerr
если уведомление не удается, но не при сбое сообщения. потому что Notify просто передает вызов в Message, и нет прямого способа проверить ошибки Message через вызов Notify. Так что вы бы проверить$call_ret['err']
Позвоните
Alerts
API; получить все последние оповещения и сопоставить их с идентификатором SID, полученным при последнем вызове.
-
Вот как сделать проверку оповещений:
$alerts = @$client->monitor->v1->alerts->read();
if(is_array($alerts))
foreach($alerts as $av)
{
$t = @$av->toArray();
@parse_str($t['alertText'], $alert_details);
if(isset($alert_details['notificationSid']) && $alert_details['notificationSid'] == $call_retx['sid'])
{
$alert_err = $alert_details['description'];
break;
}
}
$alert_err
будет нести ошибку, если была ошибка. Кроме этого нет прямого способа сделать это. Вы можете получить эти оповещения с помощью кронов или настроить веб-крючок для них, чтобы они могли перезвонить. Или просто реализуйте простой API с одним вызовом, который делает все это очень простым способом, таким какsmsbroadcast
,