ccod / go-bnet

Go (golang) client for the Battle.net API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-bnet

go-bnet is a Go client library for accessing the Battle.net API. In addition to providing an API client, this package provides OAuth endpoints.

Documentation: GoDoc

Build Status: Build Status

API Coverage: Currently only the account information API is implemented. However, the base helpers are there to easily and quickly implement any other APIs such as the WoW or SC2 data.

Usage

import "github.com/mitchellh/go-bnet"

Authentication

Authenticate using the Go OAuth2 library. Endpoints are provided via the Endpoint function. A guide to using OAuth2 to authenticate is available in this blog post. The blog post uses GitHub as an example but it is almost identical for Battle.net and this library.

Battle.net endpoints are region-specific, so specify the region to the Endpoint function and use the resulting value. Example:

oauthCfg := &oauth2.Config{
    // Get from dev.battle.net
    ClientID:     "",
    ClientSecret: "",

    // Endpoint from this library
    Endpoint: bnet.Endpoint("us"),
}

Once you have access to the OAuth client, you can initilize the Battle.net API client:

// Token from prior auth
authClient := oauthCfg.Client(oauth2.NoContext, token)

// Initialize the client
client := bnet.NewClient(oauthClient)

// ... API calls

API Calls

Once a client is made, basic API calls can easliy be made:

user, resp, err := client.Account().User()
fmt.Printf("User: %#v", user)

All API calls return a *Response value in addition to a richer type and error. The response contains the http.Response as well as metadata such as quotas, QPS, etc. from Battle.net

About

Go (golang) client for the Battle.net API

License:MIT License


Languages

Language:Go 100.0%