Page 1 of 1

[WIP] Twitch EventSub Integration

Posted: Mon Jul 22, 2024 6:57 pm
by serynn
For awhile I've had a goal of building my own custom integrations from scratch, and hosting them myself.

I started this process by learning how to build Twitch chat bots (which actually are based on the IRC - Internet Relay Chat - Protocol).
I was really surprised Twitch used IRC! I had built a few IRC bots many moons ago.

There are freely / readily-available tools to do custom rewards (which I have and still use for certain features; StreamLabs, StreamerBot, StreamElements, etc.), but I like the idea of learning how to do some things myself from the ground-up. For me, the learning is fun; it's like solving a puzzle! Another reason is that it gives me the know-how to build completely custom stuff that isn't available yet, and to understand how it works so that if it breaks I can fix it myself.
Technology changes pretty quickly too, so if I can't maintain it myself and the tool I use breaks then I'm bummed out, stuck waiting for someone else to get time to fix the issue.

One day I might like to build custom tools and integrations for others too.
I've been doing that kind of thing since highschool, and I really enjoy that kind of work - it helps others while also giving me a fun challenge to solve.
I'm a problem solver, and building solutions that solves problems can be fun ^_^

A friend of mine VirtualStella has a cute reward to "Order a Drink" (once per stream).
Her implementation is really cute - you may get a tasty drink, or a horrible experiment...

I wanted something similar with my camping theme, but I wanted to build it from scratch - for the reasons mentioned above ^_^

Anyways! Here are my technical notes on the EventSub integration.


### Goal ###

* Create a custom Channel Points Reward
* Allow my server or service to know when the Channel Points Reward was redeemed/triggered
* Do something in response to the redemption (like push a message to chat)

### Research ###

IN PROGRESS - this section will be updated as I compile my notes!

#### Authentication ####

* app access_tokens vs. user access_tokens

TBD


#### Local Development & Basic Testing ####

TBD

#### Server-Side Testing ####

TBD