Skip to content
/ helix Public
forked from nicklaw5/helix

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

License

Notifications You must be signed in to change notification settings

cihantas/helix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

helix

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

Build Status Coverage Status

Package Status

This project is a work in progress. Twitch has not finished all available endpoints/features for the Helix API, but as these get released they are likely to be implemented in this package.

Supported Endpoints & Features

Authentication:

  • Generate Authorization URL
  • Get App Access Tokens (OAuth Client Credentials Flow)
  • Get User Access Tokens (OAuth Authorization Code Flow)
  • Refresh User Access Tokens
  • Revoke User Access Tokens

API Endpoint:

  • Get Bits Leaderboard
  • Get Clip
  • Create Clip
  • Create Entitlement Grants Upload URL
  • Get Games
  • Get Top Games
  • Get Game Analytics
  • Get Streams
  • Get Streams Metadata
  • Get Users
  • Get Users Follows
  • Update User
  • Get Videos
  • Get Webhook Subscriptions

Usage

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.RateLimit.Limit)
fmt.Printf("Rate limit remaining: %d\n", resp.RateLimit.Remaining)
fmt.Printf("Rate limit reset: %d\n\n", resp.RateLimit.Reset)

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 Display Name: sodapoppin
ID: 18074328 Name: destiny Display Name: Destiny
ID: 26490481 Name: summit1g Display Name: summit1g
ID: 23161357 Name: lirik Display Name: LIRIK

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.

Contributions

PRs are very much welcome. Where possible, please write tests for any code that is introduced by your PRs.

License

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%