Git Product home page Git Product logo

helix's Introduction

helix

A Twitch Helix API client written in Go (Golang).

Tests and Coverage Coverage Status

Package Status

Twitch is always expanding and improving the available endpoints and features for the Helix API. The maintainers of this package will make a best effort approach to implementing new changes as they are released by the Twitch team.

Documentation & Examples

All documentation and usage examples for this package can be found in the docs directory. If you are looking for the Twitch API docs, see the Twitch Developer website.

Supported Endpoints & Features

Authentication:

  • Generate Authorization URL ("code" or "token" authorization)
  • Get App Access Tokens (OAuth Client Credentials Flow)
  • Get User Access Tokens (OAuth Authorization Code Flow)
  • Refresh User Access Tokens
  • Revoke User Access Tokens
  • Validate Access Token

API Endpoint:

  • Start Commercial
  • Get Extension Analytics
  • Get Game Analytics
  • Get Bits Leaderboard
  • Get Cheermotes
  • Get Extension Transactions
  • Get Channel Information
  • Modify Channel Information
  • Get Channel Editors
  • Create Custom Rewards
  • Delete Custom Reward
  • Get Custom Reward
  • Get Custom Reward Redemption
  • Update Custom Reward
  • Update Redemption Status
  • Get Channel Emotes
  • Get Global Emotes
  • Get Emote Sets
  • Get Channel Chat Badges
  • Get Global Chat Badges
  • Create Clip
  • Get Clip
  • Get Clips
  • Create Entitlement Grants Upload URL
  • Get Code Status
  • Get Drops Entitlements
  • Update Drops Entitlements
  • Redeem Code
  • Create / Remove / List EventSub Subscriptions
  • Get Top Games
  • Get Games
  • Get Hype Train Events
  • Check AutoMod Status
  • Manage Held AutoMod Messages
  • Get Banned Events
  • Get Banned Users
  • Get Moderators
  • Get Moderator Events
  • Get Polls
  • Create Poll
  • End Poll
  • Get Predictions
  • Create Prediction
  • End Prediction
  • Get Channel Stream Schedule
  • Get Channel iCalendar
  • Update Channel Stream Schedule
  • Create Channel Stream Schedule Segment
  • Update Channel Stream Schedule Segment
  • Delete Channel Stream Schedule Segment
  • Search Categories
  • Search Channels
  • Get Stream Key
  • Get Streams
  • Get Followed Streams
  • Create Stream Marker
  • Get Stream Markers
  • Get Broadcaster Subscriptions
  • Check User Subscription
  • Get All Stream Tags
  • Get Stream Tags
  • Replace Stream Tags
  • Get Channel Teams
  • Get Teams
  • Get Users
  • Update User
  • Get Users Follows
  • Get User Block List
  • Block User
  • UnBlock User
  • Get User Extensions
  • Get User Active Extensions
  • Update User Extensions
  • Get Videos
  • Delete Videos
  • Get Webhook Subscriptions
  • Create Extension Secret
  • Get Extension Secret
  • Revoke Extension Secrets
  • Get Live Channels with Extension Activated
  • Set Extension Required Configuration
  • Set Extension Configuration Segment
  • Get Extension Channel Configuration
  • Get Extension Configuration Segment
  • Send Extension PubSub Message
  • Send Extension Chat Message

Quick Usage Example

This is a quick example of how to get users. Note that you don't need to provide both a list of ids and logins, one or the other will suffice.

client, err := helix.NewClient(&helix.Options{
    ClientID: "your-client-id",
})
if err != nil {
    // handle error
}

resp, err := client.GetUsers(&helix.UsersParams{
    IDs:    []string{"26301881", "18074328"},
    Logins: []string{"summit1g", "lirik"},
})
if err != nil {
    // handle error
}

fmt.Printf("Status code: %d\n", resp.StatusCode)
fmt.Printf("Rate limit: %d\n", resp.GetRateLimit())
fmt.Printf("Rate limit remaining: %d\n", resp.GetRateLimitRemaining())
fmt.Printf("Rate limit reset: %d\n\n", resp.GetRateLimitReset())

for _, user := range resp.Data.Users {
    fmt.Printf("ID: %s Name: %s\n", user.ID, user.DisplayName)
}

Output:

Status code: 200
Rate limit: 30
Rate limit remaining: 29
Rate limit reset: 1517695315

ID: 26301881 Name: sodapoppin
ID: 18074328 Name: destiny
ID: 26490481 Name: summit1g
ID: 23161357 Name: lirik

Contributions

PRs are very much welcome. All new features should rely solely on the Go standard library. No external dependencies should be included in your solutions. Where possible, please include tests for any code that is introduced by your PRs.

License

This package is distributed under the terms of the MIT License.

helix's People

Contributors

nicklaw5 avatar scorfly avatar jbpratt avatar intel352 avatar flipkick avatar tylersouthmayd avatar hennedo avatar saltlands avatar pajlada avatar chronophylos avatar uranoxyd avatar u5surf avatar damoun avatar davidbegin avatar bamnet avatar cpanato avatar iwinulose avatar jackmcguire1 avatar lornajane avatar codedninja avatar typerslow avatar zneix avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.