# Custom access token

BlizzAPI can use OAuth access token from an outside source for data retrieval. If a custom access token is provided, BlizzAPI will not request for a new one on each query. That results in shorter response times and allows for separating OAuth authorization flow from data processing logic.

As stated in Blizzard Battle.net API docs (opens new window), access tokens last for 24 hours. They can be revoked by a number of different events (password change, account lockdown etc.). BlizzAPI can detect expired access token and obtain a new one if client id and client secret are provided. However, it is user's responsibility to keep custom access tokens valid and up to date.

Initialization with custom access token and additional options:

const { BlizzAPI } = require("blizzapi");

const BnetApi = new BlizzAPI({
  region: "us", // or 1
  accessToken: "access token",
  validateAccessTokenOnEachQuery: false,
  refreshExpiredAccessToken: false,
  onAccessTokenExpired: () => {
    /* do something */
  },
  onAccessTokenRefresh: (newAccessToken) => {
    /* do something */
  },
});

# Parameters

# validateAccessTokenOnEachQuery

Default: false

If set to true, BlizzAPI will perform additional access token validation request on each call of query method. If access token turns out to be expired or invalid and refreshExpiredAccessToken is false, BlizzAPI will respond as follows:

{
  "error": "access_token_invalid"
}

# refreshExpiredAccessToken

Default: false

If set to true, BlizzAPI will attempt to obtain a new access token if authorization error is encountered (e.g. invalid or expired access token is provided). Note that if you don't initialize BlizzAPI with clientId and clientSecret, using this option will trigger an error.

# onAccessTokenExpired

Default: undefined

Callback function to run when BlizzAPI performs a query with invalid or expired access token. If you initialize BlizzAPI with custom access token (e.g. no clientId / clientSecret provided), you should treat this property as mandatory, as your expired access token won't refresh itself. You can also use this property for variety of other purposes, such as logging or triggering alerts.

# onAccessTokenRefresh

Default undefined

Callback function to run when BlizzAPI obtains a new access token. It passes string representing new access token as a callback parameter. This can be used for variety of purposes, such as logging or caching.

Last Updated: 7/16/2023, 10:22:20 PM