Node Twitch Webhook Save

A Node.js library for Twitch Helix Webhooks

Project README

Node.js Twitch Helix Webhooks

Build Status Coverage Status JavaScript Style Guide dependencies Status devDependencies Status Node version Read the Docs (version) https://nodei.co/npm/twitch-webhook.png?downloads=true&downloadRank=true&stars=true

Little Node.js module to interact with new Twitch Helix API Webhooks.

Install

npm install --save twitch-webhook

Usage

Note: Twitch will return old payload for "users/follows" topic if {first: 1} is not specified

const TwitchWebhook = require('twitch-webhook')

const twitchWebhook = new TwitchWebhook({
  client_id: 'Your Twitch Client ID',
  callback: 'Your Callback URL',
  secret: 'It\'s a secret', // default: false
  lease_seconds: 259200,    // default: 864000 (maximum value)
  listen: {
    port: 8080,             // default: 8443
    host: '127.0.0.1',      // default: 0.0.0.0
    autoStart: false        // default: true
  }
})

// set listener for all topics
twitchWebhook.on('*', ({ topic, options, endpoint, event }) => {
  // topic name, for example "streams"
  console.log(topic)
  // topic options, for example "{user_id: 12826}"
  console.log(options)
  // full topic URL, for example
  // "https://api.twitch.tv/helix/streams?user_id=12826"
  console.log(endpoint)
  // topic data, timestamps are automatically converted to Date
  console.log(event)
})

// set listener for topic
twitchWebhook.on('users/follows', ({ event }) => {
  console.log(event)
})

// subscribe to topic
twitchWebhook.subscribe('users/follows', {
  first: 1,
  from_id: 12826 // ID of Twitch Channel ¯\_(ツ)_/¯
})

// renew the subscription when it expires
twitchWebhook.on('unsubscribe', (obj) => {
  twitchWebhook.subscribe(obj['hub.topic'])
})

// tell Twitch that we no longer listen
// otherwise it will try to send events to a down app
process.on('SIGINT', () => {
  // unsubscribe from all topics
  twitchWebhook.unsubscribe('*')

  // or unsubscribe from each one individually
  twitchWebhook.unsubscribe('users/follows', {
    first: 1,
    to_id: 12826
  })

  process.exit(0)
})

Documentation

API Reference

Open Source Agenda is not affiliated with "Node Twitch Webhook" Project. README Source: true-dubach/node-twitch-webhook
Stars
33
Open Issues
3
Last Commit
4 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating