HearthSim/twitch-hdt-ebs

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

Homepage:

Size: 68

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Twitch HDT EBS

Build Status

Twitch Extension Backend Service for Hearthstone Deck Tracker.

API Usage
Authentication

Authentication happens exclusively through HSReplay.net OAuth2. The API accepts valid OAuth2 Bearer Tokens.

Twitch Metadata Headers

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 endpoint

The /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 state

The /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.

EBS configuration
Settings

The EBS looks for the following application settings:


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.