2022-02-18 14:22:53 +01:00
2022-02-18 14:22:53 +01:00
2022-02-18 13:13:10 +01:00
2021-08-26 15:42:37 +02:00
2022-02-18 14:03:53 +01:00
2022-02-18 14:02:47 +01:00

Node-RED_Twitch_EventSub

Node-RED flow to subscribe, receive and respond to Twitch webhook

Note

Prerequisites

Dependencies

  • node-red-dashboard
  • node-red-contrib-crypto-js-dynamic
  • Optional : node-red-contrib-ngrok

For ngrok users

  • Create a free account on ngrok
  • Save your AuthToken
  • Install the ngrok node on Node-RED
  • Drag and drop a ngrok node on your flow
  • Setup the node using your AuthToken
  • Open a tunnel and save the URL

Twitch Setup

  • Create an APP and save your APP ID and Secret
  • Add the following URL using your domain name or ngrok tunnel URL

Note : As your Node-RED should be secured with http basic auth the URI are https://admin:password@xxxxxxxxx.eu.ngrok.io or https://admin:password@your.domain.name with "admin" and "password" corresponding to you Node-RED auth.

Node-RED Setup

  • Import the flow

  • Edit the API Settings node with your

    • Twitch client ID
    • Twitch client secret
    • Sub secret : a password (defined by the user) to validate the Twitch event signature
    • Twitch channel
    • Sub URI : your Node-RED server name or ngrok tunnel URL WITHOUT "HTTPS://" (Ex : your.domain.name or xxxxxxxxxxx.ngrok.io and admin:password@your.domain.name or admin:password@xxxxxxxxxxx.ngrok.io for a properly secured server)
    • Scopes (space-separated)
  • Go to the Node-RED dashboard (https://your.domain.name/ui or https://xxxxxxxxxx.ngrok.io/ui)

  • Generate an APP token and USER token by clicking on Auhtorize APP and Authorize USER (will requires to loggin with your Twitch account and accept the scopes)

  • Optional : you can test the validity and expiration of the Token using "Validate" nodes on the Node-RED editor

  • Clic on the "Get channel ID" inject node

Subscribe

  • Subscribe to an event by selecting the desired Event on the Node-RED GUI
  • Clic on "Subscribe"

Unsubscribe

  • Refresh the subscriptions
  • Select the event you want to unsubscribe
  • Clic on "Unsubscribe"

Events

  • When an event is posted to /webhook the JSON will be validated using the "Sub secret" code and sent to the second flow "Reponse"

  • The "Inject" node and "Fake event" function can be removes as they are only used for Testing/Debug purposes

  • Retrieve and use the events informations by connectig your node/function to the annotated functions

HAVE FUN

Description
Node-RED flow to subscribe, receive and respond to Twitch webhook
Readme MIT 1.5 MiB