Как установить URL обратного вызова при использовании php notify API от Twilio?

У меня есть следующий код, и он отправляет 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, используя их - должен быть способ проверить статус моего уведомления.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
327
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В вашем примере 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. Подробнее см. Выше по URL-адресу "веб-хуков".

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

Тогда мне придется взглянуть на глобальные вебхуки! Системе необходимо отправлять сообщения пакетами, поэтому установка индивидуальных обратных вызовов не идеальна (а необходимость одного вызова API для каждого номера может занять много времени и тайм-аут). Спасибо за направление.

Gazillion 06.09.2018 21:07
Ответ принят как подходящий

Получается, что я был неправ по двум причинам.

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, отправленного для каждого обновления статуса. Это означает поставку в очередь, отправку и доставку. Сначала я думал, что просто получу обновление статуса для самого пакета, поскольку мне не обязательно заботиться о статусе до 10 000 текстовых сообщений.

Я установил URL-адрес status_callback, но не получил никаких данных в $ _REQUEST.

NomanJaved 19.01.2021 18:13

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