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.
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.
import "github.com/mitchellh/go-bnet"
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
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