New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ssut/twitch-js

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ssut/twitch-js

Javascript library for the Twitch Messaging Interface.

  • 2.0.0-beta.34
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-88.89%
Maintainers
1
Weekly downloads
 
Created
Source

TwitchJS

Build status Coverage status NPM version NPM version@next NPM downloads GitHub issues GitHub bug issues

A community-centric, community-supported Twitch JavaScript SDK.

Features

  • Aligns with official Twitch IRC documentation
  • Forward-compatible, low-level, minimally-assertive architecture
  • Supports Node environments
  • Supports Browsers
  • Supports TypeScript
  • Connect to multiple channels
  • Chat commands
  • Rate limiter

In progress...

Here are the planned features. If you feel something is missing, create an issue or submit a PR against the next branch.

Documentation

  1. Getting started
  2. Authentication
  3. Examples
  4. Interacting with Twitch chat
  5. Making requests to Twitch API
  6. Reference

Getting started

Module bundler (CJS/ESM)

If you are using a module bundler, such Webpack, Browserify, or a in a Node environment:

  1. Add TwitchJS to your project:

    npm install --save twitch-js@next
    
  2. Import TwitchJS

    // ES2015 syntax
    import TwitchJs from 'twitch-js'
    
    // OR ES5 syntax
    var TwitchJs = require('twitch-js')
    
    const twitchJs = new TwitchJs({ username, token })
    

Browser (IIFE)

If you are not using a module bundler, precompiled builds are available in the dist folder:

  1. Include a script tag in your HTML:
    <script src="//unpkg.com/twitch-js@>2.0.0-beta.31"></script>
    
  2. Consume the library:
    <script type="javascript">
      const twitchJs = new window.TwitchJs({ username, token })
    </script>
    

Authentication

Obtaining a client ID

To obtain a client ID, follow the instructions found in the Twitch Developers documentation.

Obtaining a token

With a client ID, tokens may be generated on behalf of your users.

To quickly get started without a client ID, you may generate token using the following, community-maintained, sites:

  1. Twitch Chat OAuth Password Generator (Kraken/v5)
  2. Twitch Token Generator (Helix)

Refreshing tokens

While, Kraken/v5 tokens currently do not expire, Helix tokens expire and will need to be refreshed.

To help with refreshing tokens, an onAuthenticationFailure function may be provided to the Messaging and API clients. onAuthenticationFailure() must return a Promise that resolves with the refreshed token. Upon resolution, any actions that yielded a an expired token response will be retried with the new, refreshed token.

Handling token refresh example
// Optionally, use fetchUtil to help.
import fetchUtil from 'twitch-js/lib/utils/fetch'

const refreshToken = 'eyJfaWQmNzMtNGCJ9%6VFV5LNrZFUj8oU231/3Aj'
const clientId = 'fooid'
const secret = 'barbazsecret'

const onAuthenticationFailure = () =>
  fetchUtil('https://id.twitch.tv/oauth2/token', {
    method: 'post',
    search: {
      grant_type: 'refresh_token',
      refresh_token: refreshToken,
      client_id: clientId,
      client_secret: clientSecret,
    },
  }).then(response => response.accessToken)

const token = 'cfabdegwdoklmawdzdo98xt2fo512y'
const username = 'ronni'
const twitchJs = new TwitchJs({ token, username, onAuthenticationFailure })

twitchJs.chat.connect().then(globalUserState => {
  // Do stuff ...
})

See Refreshing access tokens for more information.

More information

See the Twitch Developers documentation for more information on authentication.

Examples

Please see the examples folder for browser, Node and TypeScript examples.

Contribution guidelines

If you wish to contribute, please see the CONTRIBUTING doc.

Special thanks

Schmoopiie and all the original contributors of tmi.js.

License

MIT

TwitchJS is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Twitch, or any of its subsidiaries or its affiliates. The name "Twitch" as well as related names, marks, emblems and images are registered trademarks of Twitch.

Keywords

FAQs

Package last updated on 24 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc