Nocturnal Practitioners of Magic

    twitch-toolkit

    0.0.11 • Public • Published

    twitch-toolkit

    License Build Status

    A set of tools to integrate with Twitch API, Twitch Chat and Twitch WebHooks.

    NPM

    To start to use this module, check the project documentation.

    Installation

    Using npm:

    $ npm i --save twitch-toolkit

    Usage

    The library is composed by three independent modules:

    • API: Provides access to the Helix API.
    • Chat: Provides access to the chat events through tmi.js .
    • PubSub: Provides access to the Twitch PubSub.
    • WebHook: Provides access to the WebHook topics and events.

    The toolkit exports each module and you can access it like this:

    const {API, Chat, WebHook} = require('twitch-toolkit');

    Every module must be instanced with the required configs as described in the next sessions.

    API

    The API module must be instanced with the following config object:

    Name Type Description
    client_id string The client_id to be used to access the API. This is required.
    client_secret string The secret to be used to access the API that requires login. If this is not provided, the restricted methods will thrown an error.

    Example:

    const { API } = require('twitch-toolkit');
    const twitchAPI = new API({client_id: 'id-string', client_secret: 'secret-string'})

    The API methods are described in the TwitchApi documentation page

    Chat

    The API module must be instanced with the config objects described in the constructor documentation

    Example:

    const { Chat } = require('twitch-toolkit');
    const twitchChat = new Chat(options)

    To connected to the channels with the specified user, you'll need to call the connect function:

    twitch.connect()

    After that, you'll be able to listen to channel and chat events. You can also disconnect from the chat, if you wish:

    twitch.disconnect()

    The methods and events are described in the TwitchChatEmitter documentation page

    PubSub

    The Twitch PubSub implementation, as described in https://dev.twitch.tv/docs/pubsub/ .

    The API module must be instanced with the following config object:

    Name Type Description
    logger object The logger object.
    authToken string The Twitch with OAuth token.
    reconnect string Reconnect to Twitch PubSub when disconnected from server. Default: false

    Example:

    const { WebHook } = require('twitch-toolkit');
    const twitchWebHook = new WebHook({
                client_id: 'id-string',
                callbackUrl: 'http://domain/path/to/cbUrl'
            });

    The Webhook/WebSub requires a public endpoint on the running server/application to receive the data from the hub. Without this, its impossible to make this work.

    The methods and events are described in the PubSub documentation page

    Webhooks

    The Twitch Webhooks implementation, as described in https://dev.twitch.tv/docs/api/webhooks-guide/ .

    The API module must be instanced with the following config object:

    Name Type Description
    client_id string The client ID of the user to be passed to the Hub (un)subscribe requests. This is required.
    callbackUrl string The callback URL that will receive the Hub requests. These requests should be forwarded to the handleRequest method to properly handle these data. This is required.
    logger object The logger object.

    Example:

    const { WebHook } = require('twitch-toolkit');
    const twitchWebHook = new WebHook({
                client_id: 'id-string',
                callbackUrl: 'http://domain/path/to/cbUrl'
            });

    The Webhook/WebSub requires a public endpoint on the running server/application to receive the data from the hub. Without this, its impossible to make this work.

    The methods and events are described in the WebHook documentation page

    Tests

    The module uses Mocha with Chai for unit tests and Istanbul for test coverage reports.

    To run the mocha tests:

    $ npm run test

    To run tests in debug mode (--inspect-brk)

    $ npm run test:debug

    To run the tests with the coverage report:

    $ npm run test:coverage

    To properly run the tests, the following Environment Variables must be set:

    Var Name Value
    TWITCH_CLIENT_ID The Client-ID to be used to make the API calls.
    TWITCH_CLIENT_SECRET The Client Secret to be used to make the API calls.
    TWITCH_CLIENT_USERNAME The Username related to the Client-ID
    TWITCH_CLIENT_PASSWORD The OAUTH password. It can be generated here.
    TWITCH_PUBSUB_CHANNEL_ID The ID for the channel used in the PubSub tests.
    TWITCH_PUBSUB_AUTH_TOKEN The OAUTH token for the PubSub with the proper scopes.

    License

    Licensed under the MIT License.

    Install

    npm i twitch-toolkit

    DownloadsWeekly Downloads

    25

    Version

    0.0.11

    License

    MIT

    Unpacked Size

    40.3 MB

    Total Files

    3143

    Last publish

    Collaborators

    • chriteixeira