Как вы используете URL обратного вызова для twilio php notify API? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть следующий код, и он отправляет SMS-уведомления на мой телефон:

$notification = $twilio->notify->services($serviceSid)
                                    ->notifications->create([
                                        'toBinding' => $batch,
                                        'body' => $txt,
                                        'statusCallback' => 'http://postb.in/b/jarblegarble' // <-- this doesn't work
                                    ]);

Однако, несмотря на то, что отправка работает, я не могу понять их обратные вызовы.

Я просматриваю их документы и не могу найти, как установить URL обратного вызова. Я вижу, что некоторые из их ресурсов используют "url", в то время как другие используют "statusCallback" (черт возьми, один, кажется, использует "перенаправление"). При этом я не могу публиковать сообщения в postb.in, используя их - должен быть способ проверить состояние моего уведомления.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Так что получается, что я ошибся в двух отношениях.

1) URL-адрес обратного вызова необходимо передать службе обмена сообщениями следующим образом:

$notification = $twilio->notify->services($serviceSid)
    ->notifications->create([
        'toBinding' => $bindings,
        'body' => $txt,
        'sms' => ['status_callback' => 'http://your_callback_url' ]
    ]);

2) postb.in не работает! Я тестировал приведенный выше код, после того как служба поддержки twilio убедилась, что он действителен, я решил попробовать опубликовать на своем собственном сервере и просто захватить POST-контент. Конечно же, это работало, как они и предполагали.

Редактировать: В то время мне было неясно, но URL-адрес обратного вызова будет вызываться для каждого SMS-сообщения, отправляемого для каждого обновления статуса. Это означает, что в очереди, отправлено и доставлено. Сначала я думал, что просто получу обновление статуса для самого пакета, так как мне не обязательно заботиться о состоянии до 10000 текстовых сообщений.

0 голосов
/ 06 сентября 2018

Ваш пример передает параметр statusCallback индивидуального API сервиса SMS в универсальный API уведомлений. Это смешение не сработает. Отдельная служба SMS устанавливает обратный вызов для этого конкретного сообщения, что не эффективно для пакетных отправок. Универсальный API уведомлений, напротив, опирается на веб-хуки , которые настраиваются глобально для каждой службы.

В вашем случае проще всего использовать отдельный API службы SMS:

$message = $twilio->messages->create('+15551234567', [ 'body' => 'Hi',
    'from' => '+15559876543',
    'statusCallback' => 'http://postb.in/b/jarblegarble' ]);

Чтобы использовать универсальный API уведомлений, вам нужно установить PostWebhookUrl для целевого URL при создании службы уведомлений и организовать код на этом URL для обработки onMessageSent сообщений , Более подробно об этом можно узнать по ссылке выше.

Предостережение: не пробовал ничего из этого, и я не использовал Twilio буквально восемь лет, но вышеизложенное - мое теоретическое понимание.

...