86 lines
2.7 KiB
Markdown
86 lines
2.7 KiB
Markdown
# Readme
|
|
|
|
Hello and thanks for choosing this tool for your streams!
|
|
|
|
## Setting up
|
|
|
|
First you have to create the application, go to
|
|
[Twitch developer console](https://dev.twitch.tv/console) and create it. Once done
|
|
make a copy of the `.env.example` named `.env` and fill the CLIENT_ID and
|
|
CLIENT_SECRET field values provided by Twitch.
|
|
|
|
You will have something similar to this:
|
|
|
|
```txt
|
|
TWITCH_CLIENT_ID=theClientIdProvidedByTwitch
|
|
TWITCH_CLIENT_SECRET=aSecretYouHaveToKeepSafe
|
|
```
|
|
|
|
Now we have to authenticate the account we are going to use using OAuth. In order
|
|
to get it we have to make a `GET` request to the following endpoint.
|
|
|
|
```txt
|
|
GET https://id.twitch.tv/oauth2/authorize
|
|
?client_id=<your client ID>
|
|
&redirect_uri=<your registered redirect URI>
|
|
&response_type=code
|
|
&scope=<space-separated list of scopes>
|
|
```
|
|
|
|
You can get all the available scopes on [here](https://dev.twitch.tv/docs/authentication/#scopes).
|
|
Don't forget to set the exact same redirect_url as you did on the application.
|
|
|
|
**Important**: you have to perform this operation with the account you want to use
|
|
to send the messages. You can have two different accounts, the owner of the
|
|
application and the authorized account, aka "the chatter". But I recommend you
|
|
to use the same account for simplicity.
|
|
|
|
Once authorized, we will get redirected to the specified address. The url will
|
|
have a `GET` parameter called `code` that we will use to obtain the access token.
|
|
|
|
```txt
|
|
http://localhost/?code=<code of the authorization>
|
|
&scope=channel:manage:redemptions channel:read:hype_train channel:read:polls channel:read:predictions channel:read:redemptions channel:moderate chat:edit chat:read
|
|
```
|
|
|
|
Finally make a `POST` request to the following url.
|
|
|
|
```txt
|
|
POST https://id.twitch.tv/oauth2/token
|
|
?client_id=<your client ID>
|
|
&client_secret=<your client secret>
|
|
&code=<authorization code received above>
|
|
&grant_type=authorization_code
|
|
&redirect_uri=<your registered redirect URI>
|
|
```
|
|
|
|
This will return a JSON-encoded response. Copy the whole response into a file
|
|
called `tokens.json` and place it on the root of this project (same place as
|
|
is this file).
|
|
|
|
The JSON has this format:
|
|
|
|
```json
|
|
{
|
|
"access_token": "the access token",
|
|
"expires_in": 14361,
|
|
"refresh_token": "the refresh token",
|
|
"scope": [
|
|
// list of the scopes
|
|
],
|
|
"token_type": "bearer"
|
|
}
|
|
```
|
|
|
|
## Starting the service
|
|
|
|
Install any dependencies executing the following command `yarn`, then you can
|
|
start the service using the start script `yarn start`. Keep the terminal open
|
|
until you want to close the service.
|
|
|
|
## Development
|
|
|
|
In order to start the service in development mode use the dev script `yarn dev`,
|
|
this will reload the backend whenever you make any change. Keep in mind that some
|
|
of the features might be disabled in this environment.
|