Такие компании, как Uber, TaskRabbit и Instacart, построили целую индустрию на том факте, что мы, клиенты, любим заказывать вещи мгновенно, *где бы* мы ни находились.
Ключ к успешной работе этих сервисов заключается в мгновенном уведомлении клиентов об изменениях. Клиенты ценят, когда находятся в курсе статуса своего заказа, и (конечно) хотят знать, когда что-то меняется.
В этом руководстве мы создадим систему уведомлений для вымышленного сервиса доставки белья по требованию *Laundr.io* с использованием PHP и Laravel.
Давайте начнем!
На экране курьера будут две кнопки для обновления заказов, которые привязаны к соответствующим маршрутам:
— Курьер забирает белье для доставки (
`/pickup`
) — Курьер прибывает к дому клиента (
`/deliver`
)
Для нашего демо-приложения этих кнопок будет достаточно. В рабочем приложении вы, скорее всего, использовали бы GPS для активации `deliver`
, но концепция остается той же.
Теперь давайте посмотрим, как мы настраиваем PHP Twilio REST Client.
Здесь мы создаем аутентифицированный клиент Twilio REST API, который мы можем использовать каждый раз, когда нам нужно отправить текстовое сообщение.
Мы инициализируем клиент с учетными данными нашей учетной записи Twilio, хранящимися в качестве переменных среды. Вы можете найти Auth Token и Account SID в консоли:
Далее давайте посмотрим, что мы делаем с входящими триггерами уведомлений.
В `OrderController`
мы извлекаем номер телефона, сохраненный в каждом заказе, а затем просто отправляем SMS-сообщение с соответствующим текстом. Легко!
Далее давайте подробнее рассмотрим, как мы отправляем само SMS.
Этот код показывает, как мы отправляем SMS с помощью Twilio PHP Client.
Лучше один раз увидеть, чем сказать? Мы согласны — вы можете добавить изображение заказа с помощью опционального `mediaUrl`
:
«`
‘mediaUrl’ => ‘http://lorempixel.com/image_output/fashion-q-c-640-480-1.jpg’
«`
В дополнение к обязательным параметрам (и опциональному `mediaUrl`
), мы можем передать URL `statusCallback`
, чтобы узнать, было ли сообщение доставлено.
Обновления статуса доставки сообщения интересны. Давайте рассмотрим их подробнее.
Twilio будет отправлять POST-запрос на этот контроллер каждый раз, когда статус нашего сообщения меняется на один из следующих: `queued`
, `failed`
, `sent`
, `delivered`
или `undelivered`
.
Затем мы обновляем `notification_status`
в `Order`
, и ваша собственная бизнес-логика будет действовать дальше. Это отличное место для добавления логики, которая будет повторно отправлять сообщение в случае сбоя доставки или отправлять автоматический опрос при успешной доставке клиенту.
Вот и все (или, может быть, сложено?)!
Мы только что реализовали сервис уведомлений по требованию, который предупреждает наших клиентов о том, что их заказ белья прибывает. Давайте посмотрим на другие функции, которые легко добавить с помощью Twilio.
У нас есть много отличного контента по PHP здесь, на сайте Docs, но мы выбрали лишь пару, которые вам может быть интересно посетить следующими:
Увеличьте скорость ответа, автоматизировав рабочие процессы, которые являются ключевыми для вашего бизнеса. В этом руководстве узнайте, как создать готовую к масштабированию автоматизированную SMS-систему для компании по аренде жилья для отпуска.
Защитите конфиденциальность ваших пользователей, анонимно связывая их с Twilio Voice и SMS. Узнайте, как создавать одноразовые номера телефонов по требованию, чтобы два пользователя могли общаться без обмена личной информацией.
#### Это помогло?
Спасибо, что ознакомились с этим руководством! Дайте нам знать, что вы создали — или что вы создаете — в Twitter.