Name: twitch-hdt-ebs
Owner: HearthSim
Description: Twitch Extension Backend Service for Hearthstone Deck Tracker.
Created: 2017-09-11 20:07:46.0
Updated: 2018-04-14 15:15:52.0
Pushed: 2018-04-14 15:15:51.0
Size: 68
Language: Python
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Twitch Extension Backend Service for Hearthstone Deck Tracker.
Authentication happens exclusively through HSReplay.net OAuth2. The API accepts valid OAuth2 Bearer Tokens.
With every request, the following two headers should be send:
The Twitch User ID must correspond to a linked Twitch account on HSReplay.net
for the same account as the one the client authenticates itself against.
If the User ID is not one of the account's linked Twitch accounts, an HTTP 403
will be returned with the error channel_not_allowed
and extra details.
Example:
/send/ HTTP/1.1
pt: application/json
orization: Bearer xxxxxxxxxxxx
itch-Client-Id: d72hk844mgvex3kbfhrgjtdoeqrh0t
itch-User-Id: 1111111
/1.0 403 Forbidden
w: POST, OPTIONS
ent-Type: application/json
"available_channels": ["123456", "123654"],
"error": "channel_not_allowed",
"detail": "No permission for channel '1111111'"
POST /send/
: PubSub Send endpointThe /send/
endpoint allows sending pubsub JSON messages to the twitch channel specified in the X-Twitch-User-Id
HTTP header.
The endpoint expects a POST with data formatted as {"type": "...", "data": {...}}
.
The input is validated, signed with the extension's locally-configured secret, then
submitted to the Twitch Extension PubSub API.
POST /setup/
: Verify and update setup stateThe /setup/
endpoint takes the same twitch metadata headers but expects no input.
Authentication happens using a Twitch JWT which is verified then paired up with a HearthSim user.
This endpoint allows verifying that OAuth2 permissions and Twitch setup is in order. Upon HTTP POST,
the Twitch user's extension's required_configuration
setting
will be updated
to signal the setup being complete, thereby allowing the user to complete the extension setup on Twitch.
The EBS looks for the following application settings:
EBS_APPLICATIONS
: A dictionary of Twitch Extension Client ID -> Configuration for each configured extension.
The expected configuration is a secret
string, which is the extension secret (as provided in Base64), and an
owner_id
string, which is the owner ID of the Twitch extension.EBS_JWT_TTL_SECONDS
: The TTL (in seconds) of JWTs used to communicate with the Twitch API. Default: 120