Українська
EnglishEspañolPortuguês (Brasil)РусскийFrançaisDeutsch日本語简体中文繁體中文ItalianoPolski한국어УкраїнськаالعربيةTürkçeČeštinaไทย

Одна кнопка — ваш власний робочий процес

Використовуйте Stream Deck, HTTP або WebSocket, щоб запустити збережений робочий процес Event Flow.

Повний посібник з елементів керування, жестів і значків Stream Deck

Створіть робочий процес, який можна викликати

  1. Іменований тригерStream Deck / API
  2. Умови та діїВаш збережений Event Flow
  3. НапрямокFlow Actions, OBS або інша інтеграція
  1. Відкрити Потоки подій із SSN. Створіть окремий потік або виберіть шаблон Кнопка Stream Deck / API .
  2. Додайте Запуск зі Stream Deck / API у групі тригерів Stream Deck і API .
  3. Дайте йому назву intermission. Назви мають точно збігатися й чутливі до регістру; використовуйте коротку зрозумілу назву.
  4. Підключіть її вихід до Показати текст (Show Text). Задайте текст Back in five minutes і виберіть потрібну тривалість та шар.
  5. Збережіть потік, а потім увімкніть його. Незбережений потік існує лише в редакторі; вимкнений потік не можна викликати. Початковий шаблон навмисно вимкнений, доки ви не завершите налаштування.
  6. Відкрийте свій Оверлей Flow Actions через згенероване посилання SSN. Для аудиторії додайте цей URL як браузерне джерело OBS. Сам редактор не є оверлеєм.

Потоки без цього іменованого тригера не можна викликати через API робочих процесів. Виклик робочого процесу не додає вигаданий чат у док. Наявні події OBS і звичайний чат продовжують використовувати свої тригери.

Потік може поєднувати іменований тригер із фільтрами через логічні вузли. Тримайте непов’язані автоматизації в окремих потоках: усі гілки тригерів/логіки вибраного потоку обчислюються з API-подією. Повторні натискання починають окремі запуски; розмістіть Обмежувач частоти (Rate Limiter) вузол стану після тригера, якщо потрібен інтервал очікування.

Підключіть клавішу Stream Deck

  1. Налаштуйте в плагіні дію Налаштування зі своєю сесією SSN і необов’язковим паролем. Використовуйте Перевірити підключення (Test Connection).
  2. Перетягніть Готова команда (Preset Command) на клавішу.
  3. Виберіть Event Flow workflows → Run workflow.
  4. Виберіть Оновити робочі процеси, а потім виберіть збережений потік і тригер. Клавіша зберігає і ID потоку, і назву тригера.
  5. Натисніть один раз і спостерігайте за оверлеєм Flow Actions. Галочка на клавіші означає, що SSN прийняв запуск.

Засіб вибору процесів зберігає відсутні вибори. Після перейменування, вимкнення, видалення або імпорту потоку оновіть і виберіть його знову. Потік, імпортований як новий, має інший ID. Натомість використовуйте поле Value для звернення за назвою до кількох потоків.

Власна команда: установіть Action на triggerWorkflow, залиште Target порожнім, введіть {"trigger":"intermission"} як Value та ввімкніть Чекати на відповідь. Готова команда пропонує покроковий вибір і фільтрування за можливостями.

Мультидії: кожен запит робочого процесу швидко підтверджує прийняття. Наступний крок Stream Deck може початися до завершення відкладених дій потоку. Розміщуйте послідовність і затримки всередині Event Flow, коли порядок важливий.

Передавайте власні значення

У полі Value клавіші або API-запиті:

{
  "trigger": "intermission",
  "flowId": "YOUR_SAVED_FLOW_ID",
  "data": { "name": "Back in five minutes", "minutes": 5 }
}

Задайте для Show Text {meta.workflow.data.name}. Compare Property може читати meta.workflow.data.minutes. Data — необов’язковий JSON-об’єкт; він залишається в meta.workflow.data і не може замінити ідентичність події або надати привілеї чату.

Пропустіть flowId , щоб викликати кожен увімкнений потік із точно такою назвою тригера. Кілька відповідних вузлів тригера в одному потоці все одно обчислюють цей потік лише один раз. Щоб запустити один потік, збережіть його ID із засобу вибору або відповіді виявлення.

Подія всередині вибраного потоку має type: "api", event: "workflow_trigger", chatname: "Stream Deck / API", порожній chatmessage і наведені вище дані. Звичайний чат, який копіює ці поля, не може активувати іменований API-тригер.

Приклади API

Залишайте SSN увімкненим і запущеним. Це виклики дистанційного керування Social Stream; вони не використовують окремий локальний API ШІ/MCP SSApp. Тримайте справжній ID сесії в таємниці.

Виявіть доступні тригери

{"action":"getWorkflowTriggers","get":"list-1","apiid":"YOUR_SESSION"}

Зворотний виклик містить result.payload.triggers:

{"triggers":[{"flowId":"flow-123","flowName":"Intermission","trigger":"intermission"}]}

Запустіть іменований робочий процес

{
  "action": "triggerWorkflow",
  "value": {"trigger":"intermission","flowId":"flow-123","data":{"name":"Back shortly"}},
  "get": "run-1",
  "apiid": "YOUR_SESSION"
}

Використовуйте унікальний get рядок для кожного запиту. Успішний зворотний виклик має result.ok: true, result.status: "accepted", і result.payload.matchedFlows. Прийняття означає, що ввімкнений потік знайдено й заплановано. Це не означає завершення кожної відкладеної дії, вебхука, виклику OBS або відтворення медіа.

WebSocket

Увімкнути віддалене керування розширенням через API у SSN. Підключіться до wss://io.socialstream.ninja. Приєднуйтеся з {"join":"YOUR_SESSION","out":1,"in":2}, а потім надішліть запит вище. Канал 1 передає керування; канал 2 — зворотні виклики. Для робочих процесів канал чату вмикати не потрібно.

HTTP

Увімкніть те саме налаштування дистанційного керування API. Замініть заповнювач сесії перед використанням:

POST https://io.socialstream.ninja/YOUR_SESSION
Content-Type: application/json

{"action":"triggerWorkflow","value":{"trigger":"intermission","data":{"name":"Back shortly"}}}

Для простого іменованого тригера також можна використовувати GET https://io.socialstream.ninja/YOUR_SESSION/triggerWorkflow/null/intermission. Четвертий сегмент шляху може містити JSON із URL-кодуванням для структурованих значень. Закодуйте все значення JSON за допомогою encodeURIComponent(JSON.stringify(value)). Власні канали надсилання використовують ?channel=N.

P2P

Стандартний режим P2P плагіна надсилає ті самі дані через наявний транспорт каналу даних VDO.Ninja SSN. Перемикач розміщеного WebSocket API для P2P не потрібен. Наявні клієнти P2P мають надсилати цей запит через установлене підключення керування SSN; відкривати локальний API ШІ не потрібно.

Помилки та сумісність

  • WORKFLOW_NOT_FOUND: жоден збережений увімкнений потік не відповідає тригеру/ID потоку.
  • INVALID_VALUE: відсутній/неприпустимий тригер, некоректний JSON, неприпустимий ID потоку або data не є об’єктом.
  • CONTROL_UNAVAILABLE: SSN або дистанційне керування ведучого вимкнено.
  • TARGET_UNAVAILABLE: Event Flow ще завантажується.
  • Старіші ресурси Social Stream можуть не оголошувати ці дії. Перевірте getCapabilities → ssn.actions.triggerWorkflow і getWorkflowTriggers. Мають бути встановлені і новий тригер, і оновлений плагін; сам номер версії SSApp не визначає віддалено завантажені ресурси Social Stream.

Не повторюйте автоматично виклик зі зміною стану після втрати підтвердження: робочий процес уже міг початися. Спочатку перевірте його результат. Цей API не надає черги станів виконання.

Що потрібно кожній інтеграції

Дія робочого процесуПотрібна ціль/налаштуванняЩо перевірити
Показ тексту, медіа, аудіо, очищення шаруПідключений оверлей Flow Actions, та сама сесія; браузерне джерело OBS для показу аудиторії.Видимий результат, шар, тривалість і маршрутизація звуку. Успішна команда не підтверджує видимість сцени OBS.
Керування OBSFlow Actions підключений до OBS із налаштованими адресою/паролем; назви сцени/джерела збігаються.Фактичний стан OBS. Див. посібник OBS.
Закріпити/вибрати повідомленняПідключений стандартний док; виберіть справжній ID повідомлення або повні дані повідомлення.Список закріплених повідомлень дока й оверлей вибраних повідомлень. Порожній текст чату API-тригера сам по собі не є корисним повідомленням.
Викликати вебхук (Call Webhook)URL, метод і JSON-тіло в дії.Відповідь приймача й поля помилки Event Flow; підтвердження Stream Deck надходить перед відкладеними/зовнішніми результатами.
Надіслати повідомлення / переслатиПідключене джерело з можливістю запису та явний напрямок.Фактичний цільовий чат. Запит робочого процесу не є дозволом обходити обмеження платформи.
Товари та підтримкаЗбережені/увімкнені товари й торговий оверлей.Стан вибору/приховування/розкладу SSN. Див. керування товарами.
Розіграш, квитки, балиНалаштований розіграш/економіка й відповідний учасник дії. Іменована API-подія не має ідентичності глядача.Для керування ведучого використовуйте готові команди розіграшу рівня ведучого; не розглядайте API-подію як покупку глядача. Див. розіграші й бали.
TTS, Spotify, друк, MIDIВласне підключення, дозволи, пристрій або обліковий запис кожної інтеграції.Фактичний напрямок/пристрій. Установлення Stream Deck не налаштовує ці інтеграції.

Повний посібник Event Flow · Рецепти · довідник API

Жести таймера й чату

Таймер: повертайте на один крок для ±10 секунд за замовчуванням; утримуйте регулятор натиснутим під час обертання для ±1 хвилини (6× налаштованого кроку). Натисніть/відпустіть без обертання для запуску/паузи. Торкніться екрана таймера для оновлення; утримуйте екран , щоб скинути. Саме утримання фізичного регулятора не скидає.

Перегляд чату: повертайте ліворуч для старішого чату, праворуч — для новішого; натисніть регулятор, щоб закріпити переглянуте повідомлення. Торкніться екрана, щоб вибрати наступне закріплене повідомлення; утримуйте екран, щоб відкріпити переглянуте. Тримайте стандартний док відкритим. У режимі WebSocket увімкніть пересилання чату на каналі 4.

Відкрити Help and diagnostics → Controls, icons and workflow guide у плагіні для повного автономного посібника, усіх п’яти типів дій, кожної готової команди/значка, поведінки скидання, стандартних значень і усунення несправностей.

Довідник палітри Event Flow

Палітра містить 45 тригерів, 67 дій, п’ять логічних вузлів і чотири вузли стану. Кожен елемент має текстовий підпис біля символу. Виберіть вузол, щоб побачити налаштування й передумови інтеграції; значок палітри не підтверджує підключення цілі.

Тригери визначають, коли починається потік. За потреби з’єднуйте умови через AND/OR. Дії виконуються в порядку з’єднання. Вузли стану запам’ятовують значення між подіями. Для інтервалу очікування кнопки виберіть Обмежувач частоти (Rate Limiter) (THROTTLE), а не дію Delay: Delay відкладає кожен запуск і не пригнічує повторних натискань.

Тригери: Stream Deck і API (1)
  • ▶ Запуск зі Stream Deck / API — apiTrigger
Тригери: 📣 Події стріму (9)
  • 👋 Новий підписник — eventNewFollower
  • ⭐ Новий платний підписник — eventNewSubscriber
  • 🔄 Повторна підписка/поновлення — eventResub
  • 🎁 Подарована підписка — eventGiftSub
  • 💰 Донат / чайові — eventDonation
  • 🚀 Рейд — eventRaid
  • 💎 Cheer/Bits — eventCheer
  • 📋 Інша подія… — eventOther
  • ✏️ Власна подія — eventCustom
Тригери: OBS Studio (7)
  • Стрім OBS розпочався — obsStreamStarted
  • Стрім OBS зупинився — obsStreamStopped
  • Запис OBS розпочався — obsRecordingStarted
  • Запис OBS зупинився — obsRecordingStopped
  • Сцена OBS змінилася — obsSceneChanged
  • Медіа OBS завершилося — obsMediaEnded
  • Буфер повтору OBS збережено — obsReplaybufferSaved
Тригери: 💬 Повідомлення чату (6)
  • 💬 Будь-яке повідомлення — anyMessage
  • 🔍 Повідомлення містить — messageContains
  • ▶️ Повідомлення починається з — messageStartsWith
  • ⏹️ Повідомлення закінчується на — messageEndsWith
  • 🟰 Повідомлення дорівнює — messageEquals
  • 🔤 Регулярний вираз повідомлення — messageRegex
Тригери: 📊 Властивості повідомлень (7)
  • 📏 Довжина повідомлення — messageLength
  • 🔢 Кількість слів — wordCount
  • 😀 Містить емодзі — containsEmoji
  • 🔗 Містить посилання — containsLink
  • 💰 Містить донат — hasDonation
  • ⚖️ Порівняти властивість — compareProperty
  • ⚙️ Фільтр властивостей повідомлення — messageProperties
Тригери: 👤 Користувач і джерело (6)
  • 📡 Із джерела — fromSource
  • 📺 За назвою каналу — fromChannelName
  • 👤 Від користувача — fromUser
  • 👑 Роль користувача — userRole
  • 🧠 Користувача запам’ятовано — userMemoryContains
  • 🎁 Отримання нагороди за бали каналу — channelPointRedemption
Тригери: ⏰ Час і випадковість (4)
  • 🎲 Випадкова ймовірність — randomChance
  • ⏰ Часовий інтервал — timeInterval
  • 🎤 Коли я кажу… — voicePhrase
  • 🕐 Час доби — timeOfDay
Тригери: 🎹 MIDI (3)
  • 🎹 MIDI Note On — midiNoteOn
  • 🎹 MIDI Note Off — midiNoteOff
  • 🎛️ MIDI Control Change — midiCC
Тригери: 📦 Розширені (2)
  • 📣 Тип події (розширений) — eventType
  • Власний код (Custom Code) — customJs
Дії: 💬 Дії з повідомленнями (14)
  • 🚫 Заблокувати повідомлення — blockMessage
  • ✅ Повернути повідомлення — returnMessage
  • ⚡ Продовжити асинхронно — continueAsync
  • ✏️ Змінити повідомлення — modifyMessage
  • ⬅️ Додати префікс — addPrefix
  • ➡️ Додати суфікс — addSuffix
  • 🔄 Знайти й замінити — findReplace
  • ✂️ Видалити текст — removeText
  • 🎨 Установити властивість — setProperty
  • 🌟 Вибрати повідомлення — featureMessage
  • Закріпити повідомлення (Pin Message) — pinMessage
  • 💬 Надіслати повідомлення — sendMessage
  • 📢 Переслати чат — relay
  • 🪞 Фільтр віддзеркалення — reflectionFilter
Дії: 🔌 Інтеграції (6)
  • Виконати власний код (Execute Custom Code) — customJs
  • 🖨️ Надрукувати термоетикетку — printThermal
  • 🌐 Викликати вебхук — webhook
  • ⬆️ Додати бали — addPoints
  • ⬇️ Витратити бали — spendPoints
  • 🎁 Розіграш / квитки — giveawayControl
Дії: 🎨 Медіа й ефекти (7)
  • 🖼️ Показати медіаоверлей — playTenorGiphy
  • 👤 Показати аватар — showAvatar
  • 🛍 Товари й підтримка — commerceControl
  • 📝 Показати текст — showText
  • 🗑️ Очистити шар — clearLayer
  • 🔊 Відтворити аудіокліп — playAudioClip
  • ⏱️ Затримка — delay
Дії: 🎬 OBS Studio (14)
  • 🎬 Змінити сцену — obsChangeScene
  • 👁️ Перемкнути джерело — obsToggleSource
  • 📝 Установити текстове джерело — obsSetText
  • ⏯️ Керувати медіаджерелом — obsMediaControl
  • 🔊 Установити гучність джерела — obsSetVolume
  • 🔄 Оновити браузерне джерело — obsRefreshBrowser
  • 🎨 Перемкнути фільтр — obsSetSourceFilter
  • 🔇 Вимкнути/увімкнути звук — obsMuteSource
  • 🔴 Почати запис — obsStartRecording
  • ⏹️ Зупинити запис — obsStopRecording
  • 📡 Почати трансляцію — obsStartStreaming
  • ⏹️ Зупинити трансляцію — obsStopStreaming
  • ⏺️ Керувати буфером повтору — obsReplayBufferControl
  • 💾 Зберегти буфер повтору — obsReplayBuffer
Дії: 🎵 Spotify (10)
  • ⏭️ Пропустити композицію — spotifySkip
  • ⏮️ Попередня композиція — spotifyPrevious
  • ⏸️ Пауза — spotifyPause
  • ▶️ Відновити — spotifyResume
  • ⏯️ Перемкнути відтворення/паузу — spotifyToggle
  • 🔊 Установити гучність — spotifyVolume
  • 📋 Додати до черги — spotifyQueue
  • 🎵 Оголосити поточну композицію — spotifyNowPlaying
  • 🔀 Перемкнути випадковий порядок — spotifyShuffle
  • 🔁 Установити режим повтору — spotifyRepeat
Дії: 🔊 Озвучення тексту (5)
  • 🗣️ Озвучити текст — ttsSpeak
  • 🔇 Перемкнути TTS — ttsToggle
  • ⏭️ Пропустити TTS — ttsSkip
  • 🗑️ Очистити чергу TTS — ttsClear
  • 🔊 Установити гучність TTS — ttsVolume
Дії: 🎹 MIDI (2)
  • 🎹 Надіслати ноту — midiSendNote
  • 🎛️ Надіслати Control Change — midiSendCC
Дії: 🧠 Пам’ять користувачів (4)
  • 🧠 Запам’ятати користувача — rememberUser
  • 👋 Забути користувача — forgetUser
  • 🧹 Очистити всіх користувачів — clearUserMemory
  • 🎟️ Вибрати випадкового користувача — pickRandomUser
Дії: 🔧 Керування станом (5)
  • 🚦 Установити стан логічного вузла — setGateState
  • 🔄 Скинути вузол стану — resetStateNode
  • 🔢 Установити значення лічильника — setCounter
  • ➕ Збільшити лічильник — incrementCounter
  • Перевірити лічильник (Check Counter) — checkCounter
Логічні вузли й вузли стану
  • 🔀 Вузол AND — AND
  • 🔄 Вузол OR — OR
  • 🚫 Вузол NOT — NOT
  • 🎲 Вузол RANDOM — RANDOM
  • 🚫 Перевірити лайку — CHECK_BAD_WORDS
  • 🚦 Перемикач увімк./вимк. — GATE
  • 🔢 Лічильник — COUNTER
  • ⏲️ Обмежувач частоти — THROTTLE
  • 🧠 Пам’ять користувачів — USER_MEMORY

Фільтрам повідомлень, балам глядачів і діям пам’яті користувачів потрібні змістовні дані повідомлення/користувача. Кнопка ведучого не надає ні справжнього глядача, ні цілі відповіді джерелу. Вибирайте керування ведучого або явно налаштований напрямок; не використовуйте іменований процес, щоб видавати себе за глядача.

Докладні з’єднання — див. Посібник із потоків подій, посібник із вузлів стану, посібник із пам’яті користувачів, і посібник OBS.

Розберіться зі збоєм

  1. Спочатку використайте простий потік Show Text і перевірте його результат.
  2. Збережіть і ввімкніть; оновіть список робочих процесів Stream Deck. Перевірте і назву тригера, і ID потоку.
  3. Переконайтеся, що SSN увімкнений, підключення має стан Online, а цільовий оверлей підключений до тієї самої сесії.
  4. Перевірте зворотний виклик API або діагностику плагіна на помилки пошуку/валідації. Для збоїв після прийняття перевірте ціль і журнали виконання Event Flow.
  5. Додавайте інші інтеграції по одній. Перевірте повторні натискання, вимкнений потік і повторне підключення перед використанням наживо.

Звичайна тестова панель чату редактора надсилає подію чату. Вона не імітує іменований API-тригер. Перевіряйте цей тригер через Stream Deck або API, щоб перевірити повний шлях.