• Время чтения ~3 мин
  • 20.01.2023

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

Если вы хотите подписаться на какие-либо из упомянутых услуг, вот наши страницы:

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297