Как автоматизировать блог Github Pages - бесплатно - с помощью IFTTT и Glitch

В начале этого месяца я, наконец, решил, что пришло время перенести мой личный блог с Tumblr на Github Pages. Единственное, что меня удерживало, - это перекрестная реклама в социальных сетях; В Tumblr я использовал IFTTT для создания новых постов, основанных на моем обмене в социальных сетях, но IFTTT не поддерживает Github Pages.

Чтобы решить эту проблему, я создал ifttt-ghpages, небольшой веб-хост, который можно запускать бесплатно на Glitch, который создает посты на страницах Github из действий IFTTT.

Этот блог использует ifttt-ghpages для интеграции моей деятельности с Github, Twitter, Instagram и Spotify. Самое приятное в IFTTT - гибкость - IFTTT поддерживает сотни сервисов, и вы можете использовать любой из них для автоматизации своих сообщений в блогах! В этом примере мы собираемся настроить триггер, который автоматически переписывает новые изображения из Instagram в нашем блоге.

Прежде чем мы продолжим:

  • В этом руководстве предполагается, что вы уже установили сайт Github Pages, который использует генератор сайта Jekyll. Если вы не знакомы с страницами Github, сначала необходимо создать его, прежде чем двигаться дальше.

  • ifttt-ghpages использует автоматизированную систему сборки Jekyll Github Pages - если вы предварительно создаете страницы своего сайта или используете статический генератор сайтов, отличный от Jekyll, ifttt-ghpages в настоящее время не поддерживает эти варианты использования (хотя запросы на загрузку для новых функций Добро пожаловать!)

Начнем с создания форка ifttt-ghpages на Glitch. Glitch называет forks «ремиксами». Перейдите в предварительный просмотр ifttt-ghpages и нажмите «Remix your own», чтобы создать свою собственную копию проекта.

Теперь, когда у вас есть собственная копия ifttt-ghpages, нам нужно указать переменные среды, необходимые для запуска приложения. В сбой .envфайл содержит переменные среды - и этот файл является особенным, потому что только пользователи, которых вы пригласили сотрудничать в своем проекте, могут видеть значения внутри. Это позволяет хранить конфиденциальные данные в Glitch, такие как ключи API, без риска подвергать их другим пользователям.

Откройте .envфайл, и вы увидите 4 переменных:

  • GH_USER: ваше имя пользователя Github.
  • GH_REPO: репо, которое содержит ваши страницы Github
  • GH_TOKEN: Ваш токен GitHub, который мы будем использовать для ввода новых коммитов в ваше репо через API Github. Вы можете создать маркер пользователя здесь.
  • WEBHOOK_TOKEN: Случайный токен по вашему выбору, который мы укажем в наших запросах от IFTTT, чтобы проверить запрос, не исходит от кого-то другого. Этот токен может быть чем угодно, но я рекомендую генерировать UUID, используя такой сайт, как https://www.uuidgenerator.net .

Это все необходимые настройки в Glitch. Держитесь за имя проекта, которое дал вам Glitch, а также WEBHOOK_TOKENвы установили - нам понадобятся они, когда мы настроим IFTTT. Если вы хотите, вы можете изменить название проекта на что-то более запоминающееся.

Хорошо, теперь, когда мы правильно настроили Glitch, давайте создадим новый триггер в IFTTT - IFTTT вызывает эти апплеты. Войдите в IFTTT и создайте новый апплет.

На новой странице апплета выберите эту ссылку и выберите Instagram для вашей службы, затем триггер. Любая новая фотография . для этого действия выберите службу Webhooks , затем триггер Сделайте веб-запрос . Настройте свой webhook следующим образом:

  • URL: - используйте имя проекта и переменные WEBHOOK_TOKEN из проекта Glitch, который мы создали ранее. https://YOUR-PROJECT-NAME.glitch.me/?token=YOUR-TOKEN

  • Метод :POST

  • Тип контента :text/plain

  • Тело: YAML-образный документ Jekyll, с заменой новой строки |||. В реестре Github этого проекта указано несколько примеров , но вот пример для Instagram:---|||layout: post|||title: {{Caption}} - Tweet|||network: instagram|||date: {{CreatedAt}}|||---|||{{EmbedCode}}

Техническое примечание. Первоначально я построил ifttt-ghpages, чтобы принять JSON, но не смог сбежать из JSON и новых строк с IFTTT, поэтому вместо этого использовал формат выше.

И ты все настроен! Теперь, когда вы создаете сообщение на instagram, вы сразу же заметите новую фиксацию вашего рефинга Github Pages:

Как я упоминал ранее, возможности ограничены только количеством сервисов и поддерживает функции IFTTT. Некоторые идеи, основанные на других триггерах IFTTT:

  • SMS: опубликуйте в своем блоге со своего мобильного телефона
  • Google Assistant: опубликуйте свой блог своим голосом
  • Pocket: опубликуйте свой блог, когда вы сохраните статью
  • Phillips Hue: синхронизируйте свой веб-сайт с вашим текущим освещением
  • Nest Cam: разместите изображение в своем блоге, когда камера видит движение
  • Trello: используйте плату trello в качестве бэкэнд для своих сообщений в блоге