Когда мы публикуем новый пост здесь, в новостях Laravel, в фоновом режиме происходит множество вещей, которые автоматически отправляются во все места в Интернете. В этом посте давайте посмотрим, как мы делимся им со всеми службами.
Вот базовая блок-схема того, что происходит в новостях Laravel, когда публикуется сообщение, показывающее все задействованные сервисы:
Как видите, мы используем множество различных сервисов, но после их настройки у нас не возникает особых проблем, и все происходит автоматически.
Начиная слева направо, давайте пройдемся по каждому разделу и расскажем, как его настроить:
Каналы уведомлений Laravel
Каналы уведомлений Laravel великолепны, и сообщество создало множество различных поставщиков для использования. Мы используем один для нашего аккаунта Twitter, а другой — для аккаунт Telegram.
Для Telegram у нас есть старая, но все еще точная статья об автоматической публикации в Telegram
Вот код нашего уведомления PostPublished:
код0Электронные письма
У нас есть два основных списка адресов электронной почты. Один отправляется каждый день и включает в себя все новые сообщения и новые ссылки на сообщества. Затем второй список для еженедельной электронной почты, которая отправляется каждое воскресенье, в настоящее время составляется вручную. Вы можете подписаться на них на нашей странице новостей.
Ежедневные новости полностью автоматизированы, и они работают с помощью запланированной консольной команды, которая запрашивает наш сервер Statamic на наличие новых сообщений и создает полный Электронная почта в формате HTML в файле блейда. Исходя из этого, мы используем CampaignMonitor API, чтобы создать черновик, а затем мгновенно отправить электронное письмо.
код1Вот код для фактической отправки...
код2RSS-канал
RSS-канал создается вручную с использованием того же метода, который описан в нашем руководстве на создание RSS-канала с нуля, но мы делаем еще один шаг и используем сторонний службы с именем Feedpress.
С помощью стороннего поставщика мы получаем некоторую статистику о читательской аудитории RSS, что теоретически полезно, но мы редко это проверяем.
От RSS к Zapier
Следующий основной раздел использует Zapier для чтения новых элементов в RSS-канале, а затем отправляет публикацию в другие службы.
Zap-файлы Facebook и LinkedIn отправляются в Buffer, а затем публикуются из Buffer. Сначала мы использовали Buffer, потому что в нашем разделе ссылок сообщества может быть одобрено много файлов в один и тот же день, поэтому вместо того, чтобы делиться всеми их одновременно, мы можем использовать более детальное планирование.
Что касается мастодонта, я использовал это руководство несколько недель назад, и с тех пор оно работает без сбоев.
Фид JSON
Несколько лет назад фиды JSON были горячей темой, поэтому мы должны были это сделать. Его довольно просто создать, и у нас есть полное руководство по созданию канала JSON здесь.
Лента новостей Google
Последний канал предназначен для Новостей Google, настроить который было сложно, поскольку в нем много ограничения на то, что они считают новостью, и если вы поделитесь чем-то, что они не считают новостью, они могут вас заблокировать.
Суть отправки заключается в том, что вам нужно предоставить им специальный канал XML, но он может содержать только элементы, опубликованные за последние два дня, и может быть только новостями.
Вот наш контроллер для настройки всех этих данных из нашего бэкенда Statamic:
код3Затем файл представления Blade:
код4Закрытие
Вот как мы делимся информацией с различными службами, когда публикуется новая запись. Эта установка производилась почти десятилетие и была надежной. При написании этого я заметил, что мы могли бы упростить некоторые из них из-за новых каналов уведомлений и могли бы удалить буфер шаг полностью. Конечно, можно также напрямую использовать различные API, но я обнаружил, что вместо того, чтобы беспокоиться об изменениях API, мне нужно проходить через Zapier.
Если вы хотите подписаться на какие-либо из упомянутых услуг, вот наши страницы: