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 and profile information APIs are 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 import and initilize one of the Battle.net API clients:
// Token from prior auth
authClient := oauthCfg.Client(oauth2.NoContext, token)
// Initialize the Battle.net Profile API client
client := profile.NewClient("us", authClient)
// ... 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