Сегодня мы настроим ваш сервер так, чтобы он автоматически отправлял (текстовое) оповещение, когда что-то идёт не так. С помощью PHP и Laravel мы будем уведомлять всех администраторов сервера на их телефоны, когда в коде возникает исключение.
Склонируйте приложение и ознакомьтесь с README, чтобы узнать, как запустить его локально.
Давайте начнём!
Здесь мы создаём список людей, которых нужно уведомить в случае ошибки на сервере.
Единственный обязательный элемент данных, который нам нужен, — это `phone_number` для каждого администратора.
Далее мы рассмотрим, как настроить клиент Twilio.
Для отправки сообщения нам нужно создать REST-клиент Twilio, для чего потребуется считать `TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN` и `TWILIO_NUMBER` из переменных окружения. `TWILIO_NUMBER` не обязательно должен быть реальным номером — это может быть любой номер на ваш выбор, и он в основном используется для заполнения поля `To` в исходящем сообщении.
Значения для вашего Account SID и Auth Token можно найти в консоли Twilio.
Теперь посмотрим, как обрабатывать исключения в приложении.
Каждый раз, когда в приложении Laravel возникает исключение, его обрабатывает `TwilioExceptionHandler` (подходящее название!).
Именно здесь мы подключаем код отправки SMS. Важно вызвать `parent`, чтобы фреймворк мог выполнить стандартную обработку ошибок.
Далее рассмотрим, как создать пользовательское сообщение.
Здесь мы формируем текст оповещения для отправки по SMS.
Вы также можете добавить к сообщению изображение — например, скриншот приложения в момент сбоя или мем, чтобы успокоить всех.
Теперь посмотрим, как загрузить список администраторов.
Мы считываем список счастливчиков из JSON-файла и отправляем каждому из них сообщение с оповещением с помощью приватного метода `send_message`.
Теперь разберёмся, как отправить текстовое сообщение.
Для отправки SMS через Twilio REST API требуется три параметра: `From`, `To` и `Body`.
После отправки сообщения мы выводим номер телефона, на который отправлено сообщение. Телефонные номера США и Канады также могут отправлять изображения вместе с сообщением. (В других странах будет добавлена сокращённая ссылка на изображение.)
Вот и всё!
Мы только что реализовали автоматическую систему уведомлений о состоянии сервера, которая может рассылать оповещения, если (точнее, когда) что-то пойдёт не так. Теперь рассмотрим несколько других полезных функций, которые вы можете добавить.
PHP и Twilio — отличное сочетание. Вот ещё два замечательных руководства для вас:
Повысьте безопасность вашей системы входа, проверяя мобильный телефон пользователя в дополнение к паролю.
Отправляйте клиентам SMS-уведомления о предстоящих встречах — это руководство покажет, как это сделать из фонового задания.
#### Помогло ли это?
Спасибо за ознакомление с этим руководством! Напишите в Твиттере @twilio, чтобы поделиться своим мнением.