Автопост в группу ВКонтакте при запуске стрима Twitch

Наконец-то я разобрался в API ВКонтакте и сразу же замутил одну послезную феню, которую давно хотел реализовать: автоматическое оповещение своих подписчиков в группе ВКонтакте о том, что начался стрим. Ведь как обычно делаешь? Запустил стрим, идешь в свою группу, ручками пишешь, что запустил. Еще может и картинку какую-то ищешь.

Можно такой пост заранее сделать и запланировать ко времени начала стрима, если утвердил для себя расписание (почему следует стримить по рассписанию, я, кстати, уже рассказывал в своем Twitch FAQ), но в любом случае — это ручная работа. А я как программист — хоть и в отставке — очень не люблю делать какие-то регулярно повторяющиеся действия самостоятельно и всегда ищу способы автоматизации процесса.

IFTTT

С сервисом If This Then That, название которого можно перевести как «если произошло вот это, делать то», я познакомился давно и успешно использую его для решения различных задач. К примеру, возможность заказа игры для стрима прямо из чата Твича работает в том числе через IFTTT. О реализации этой функциональности я подробно рассказал в серии статей под общим названием «Дневник разработки».

По сути IFTTT создает связь между двумя серсивами. Например, можно подключить к аккаунту Instagram и Dropbox, а потом установить связь: если опубликована новая фотография в инстаграме, сохранить её заданную папку дропбокса. IFTTT поддерживает огромное количество сервисов, начиная с Твиттера, заканчивая системами управления умным домом.

Как подключить ВКонтакте к IFTTT

Поддержка Твича появилась достаточно давно, а вот ВКонтакте у IFTTT пока в списке поддерживаемых сервисов не значится. Но это не беда, потому что для сайтов (и не обязательно только сайтов) с API существует самый крутой коннектор Maker.

Данный коннектор настолько крут, что может как принимать запросы от любых сервисов через GET и POST, так и отравлять их куда угодно. В нашем случае алгоритм работы будет следующий: мы создадим связь в IFTTT между Twitch и Maker, который будет отправлять специализированный запрос ВКонтакте для создания поста в группе (паблике) с информацией о стриме. Для работы нам нужно собственное приложение ВКонтакте и его access_token. Если у вас они уже есть, то пропускайте следующий раздел.

Standalone-приложение и токен

Начальный пункт наших изысканий расположен в конечном пункте задачи, то есть во ВКонтакте. Социальная сеть не разрешат работать с API пользователю напрямую. Делать это можно только через приложение. Его мы сейчас и создадим прямо вот тут: https://vk.com/apps?act=manage. Там справа есть кнопочка Создать приложение. Нажал — создал.

Выбираем платформу: Standalone-приложение. Вписываем абсолютно любое навзвание. Потом еще надо с телефона подтвердить, что вы не фейк. Далее сразу идем в раздел Настроки (это слева менюшка) и копируем циферки самого верхнего поля ID приложения.

Отлично. Теперь самый отвественный этап. Скопируйте вот такую ссылку в Блокнот (Notepad++, конечно):

https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Циферки после client_id= нужно поменять на свои, которые мы взяли из ID приложения. А потом вставляем эту ссылку в адресную строку браузера, жмем Enter и подтверждаем всю ту уйму прав, что мы хотим предоставить своему приложению, нажав кнопку Разрешить.

После этого в строке адреса браузера сменится линк, в котором появится параметр access_token. Вам нужно скопировать и сохранить то, что идет после знака равно и до амперсанта (&). Эта длинная череда символов позволит нам создавать посты (и не только) в группах и пабликах, к которым есть доступ у аккаунта, которым вы разрешили доступ приложению.

Настраиваем IFTTT

Регистрируемся, переходим в раздел My Applets, жмем кнопку New Applet:

  • На странице настройки нового апплета нажимаем на синюю надпись +this — это триггер нашего апплета. Пишем в поиске Twitch, авторизуемся и выбираем событие на второй карточке New stream started by you. То, что нам и нужно — запуск нового стрима;
  • Теперь нам нужно выбрать, что будет происходить при запуске стрима, нажимаем на +that и пишем в поиске webhook. Выбираем один найденный сервис Maker Webhooks, и далее экшон Make a web request;
  • На данный момент для того, чтобы сформировать ссылку запроса, который будет создавать пост во ВКонтакте при запуске стрима, у нас не хватает ID вашей группы (паблика). Узнать его проще простого:
    • щелкнике правой кнопкой мыши по дате любого поста в вашем паблике (группе);
    • скопируйте ссылку;
    • выделите из ссылки число между wall и подчеркиванием
      https://vk.com/wall-101835343_3396 — обратите внимание, ID групп и пабликов всегда отрицательные, не потеряйте минус.
  • В поле URL настройки апплета нужно вставить ссылку:

https://api.vk.com/method/wall.post?owner_id=-101835343&friends_only=0&from_group=1&message=<<<Запустил стрим по {{Game}}. Стрим по ссылке {{ChannelUrl}}>>>&attachments= {{StreamPreview}}&access_token=СЮДА_ВСТАВЬ_СВОЙ_ТОКЕН

В этой ссылке обязательно нужно заменить owner_id на ID вашей группы (паблика) ВКонтатке, access_token на ваш токен, полученный нами в предыдущем разделе. Еще вы видите интересные конструкции <<<ЧОТА>>> и {{ЧОТА}}. Тройные знаки больше-меньше нужны, чтобы всё было хорошо, не трогайте их. Двойные фигурные скобки представляют собой так называемые ингридиенты — это значения, которые передает нашему апплету Твич, когда происходит запуск стрима. Всего их шесть:

  • CreatedAt — дата и время начала стрима;
  • Game — игра, которая задана на стриме в момент запуска;
  • ChannelName — название канала, та часть ссылки, которая идет после twitch.tv/
  • StreamPreview — ссылка на картику с текущим кадром стрима на момент события;
  • ChannelUrl — ссылка на ваш канал;
  • CurrentViewers — количество зрителей на данный момент.

Как вы видете по ссылке, я использовал в параметре message ингредиенты, чтобы обозначить текущую игру на стриме и дать ссылку на стрим. Параметр attachments содержит вложения к посту, сюда можно добавить любую картинку из вашего альбома ВКонтакте, но я решил сделать его динамическим и прикрепил ссылку на превью стрима. На выходе получается так:

 

Есть нюанс. Приложенная картинка не ведет на стрим, она открывает ту самую ссылку на превью-картинку стрима. Прямо сейчас для меня является пероочередной задачей решить, как сделать данную картинку ссылкой на стрим. Но даже в текущем варианте первоначальная задача решена.

При начале стрима на Twitch автоматически создается пост в моей паблике ВКонтакте с достоверной информацией о стриме. И, кстати, не забудьте нажать на кнопку Save после того, как настроите апплет! Никакие другие поля кроме URL трогать не нужно. Всё будет работать и так.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (голосов: 2, средняя оценка: 5,00 из 5)
Загрузка...