В прошлом месяце я показал вам, как отправлять ежедневные SMS-напоминания с помощью Firebase, Node.js и Twilio. Через неделю мы запустили MMS на длинных номерах в США и Канаде, и я подумал, что лучший способ воспользоваться этим — обновить мое приложение, добавив картинку в ежедневное сообщение. Какую картинку я хотел бы получать каждый день? Конечно же, случайную гифку из Giphy! Давайте приступим к обновлению кода для SMS, чтобы реализовать это. Если вы еще не ознакомились с предыдущей статьей, вернитесь и изучите её. Не волнуйтесь, у меня найдется много гифок, чтобы занять вас во время работы.
Хотите увидеть это приложение в действии? Надеюсь, вы так же увлечены командой Kansas City Royals, как и я, потому что я создал приложение, которое будет отправлять вам случайную гифку с Royals каждый день после обеда. Хотите подписаться? Отправьте слово «subscribe» на номер (816) 844-6184.
Если кто-то подписывается на ежедневную отправку гифок, очевидно, что мы должны отправить ему отличную гифку в качестве поздравления при регистрации. Чтобы отправить MMS с помощью TwiML, мы хотим вложить теги
Параметр *body* будет содержать текст, который мы хотим отправить в ответ. Параметр *media* содержит URL изображения, которое мы хотим отправить. Обязательно выберите отличную гифку из Giphy. Я остановился на этой. Отправьте слово «subscribe» на ваш номер Twilio и получите виртуальный «дай пять»!
Сейчас в нашем приложении есть одна большая проблема — недостаточно гифок! К счастью, мы можем воспользоваться API Giphy, чтобы получить доступ к большему количеству гифок, чем когда-либо понадобится. Для взаимодействия с Giphy из нашего приложения мы будем использовать библиотеку giphy-wrapper для Node.js. Давайте установим её с помощью npm:
Теперь давайте инициализируем библиотеку в начале нашего файла app.js:
Библиотека giphy-wrapper позволяет легко искать гифки на Giphy по определенному тегу. Давайте добавим код, который будет извлекать гифки с тегом «puppy» в наше приложение. Замените код, который был в нашем колбэке textJob из предыдущей статьи, следующим кодом:
Мы используем giphy-wrapper для получения 100 гифок с тегом «puppy» из Giphy. Если возникнет ошибка, мы запишем её в консоль. В противном случае мы выберем случайную гифку из ответа и выведем её в консоль. Запустите этот код и посмотрите, как он работает. Не забудьте обновить время в вашем textJob на ближайшее время, чтобы не ждать часами для тестирования кода.
Теперь, когда мы получаем случайную гифку из Giphy, давайте добавим код, который будет отправлять её всем подписчикам. Сразу после получения случайной гифки добавьте следующий код:
Этот код почти идентичен коду, который мы ранее использовали для отправки SMS-сообщений. Мы используем функцию sendMessage из библиотеки Twilio Node.js для отправки сообщения. Единственное отличие заключается в том, что мы также передаем mediaUrl в качестве аргумента при вызове sendMessage. Этот mediaUrl — это общедоступный URL гифки, которую мы хотим отправить. Giphy предоставляет множество версий гифки для загрузки, но мы будем использовать уменьшенную версию.
Запустите ваше приложение, подпишитесь и посмотрите, как оно работает.
Теперь вы можете отправлять ежедневные анимированные гифки. Кто первым создаст приложение с анимированными гифками Чака Норриса? Жду с нетерпением. Прошел почти целый месяц с тех пор, как мы открыли MMS. Вы уже создали что-то крутое с использованием MMS? Мне бы хотелось это увидеть! Вопросы или комментарии? Свяжитесь со мной в Twitter или напишите на электронную почту.