АВТОП в групу ВКонтакте при запуску стріму Twitch - JackyFox

  1. IFTTT
  2. Як підключити ВКонтакте до IFTTT
  3. Standalone-додаток і токен
  4. налаштовуємо IFTTT

Нарешті я розібрався в 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 чіпати не потрібно. Все буде працювати і так.

Все це якось пов'язано

Адже як зазвичай робиш?
Com/apps?
Com / authorize?
Post?

Дополнительная информация

rss
Карта