Как отправить нескольким получателям (БЕЗ ЗАПУСКА) при использовании переменного буквенно-цифрового идентификатора отправителя?

Мне было интересно, если есть способ установить несколько получателей БЕЗ зацикливания на списке получателей на моем конце?! Также самое главное при использовании переменного буквенно-цифрового идентификатора отправителя, а не при покупке номера 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. Вот мой смешанный подход.

  1. Обработка исключений в notifications->create вызов

  2. $call_ret буду иметь err если уведомление не удается, но не при сбое сообщения. потому что Notify просто передает вызов в Message, и нет прямого способа проверить ошибки Message через вызов Notify. Так что вы бы проверить $call_ret['err']

  3. Позвоните 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,

Другие вопросы по тегам