@ 暴风雪- api/ 客户端
这个软件包提供了一个客户端,意在与一个或多个专用于暴风雪游戏的软件包一起使用.
目前可用的软件包有:
@blizzard-api/classic-wow@blizzard-api/d3@blizzard-api/hs@blizzard-api/sc2@blizzard-api/wow
安装
npm i @blizzard-api/client
使用量
import { createBlizzardApiClient } from '@blizzard-api/client';
//or
import createBlizzardApiClient from '@blizzard-api/client';
import { wow } from '@blizzard-api/wow';
const client = await createBlizzardApiClient({
key: 'environment.blizzardClientId',
secret: 'environment.blizzardClientSecret',
origin: 'eu',
});
//Response will automatically be typed with the appropriate values
const response = await client.sendRequest(wow.commodities());
console.log(response);
^ typeof AuctionHouseCommoditiesResponse
客户选项
createBlizzardApiClient 接受一个 ClientOptions 对象 :
| 选项 | 类型 | 需求 | 说明 |
|---|---|---|---|
key | string | 对 | 你的Blizzard API客户身份证. |
secret | string | 对 | 你的Blizzard API客户端的秘密. |
origin | Origins | 对 | 与该区域交谈,例如:. 'eu', (中文(简体) ), 'us', (中文(简体) ), 'kr', (中文(简体) ), 'tw', (中文(简体) ), 'cn'。 。 。 . |
locale | Locales | 没有 | 例如,请求答复的地方. 'en_GB'。默认为 origin。 。 。 . |
token | string | 没有 | 先前存在的访问符 如果提供,则在仍然有效时予以验证并重新使用. |
kyOptions | KyOptions | 没有 | 转交基础 ky 举个例子. |
自动刷新令牌
createBlizzardApiClient 选择第二个参数, onTokenRefresh,用于控制访问符的管理方式:
true(default)——客户端在创建时获得一个令牌,并在到期前不久自动安排刷新.false——客户端在未获得或未安排任何令牌的情况下被退回. 你负责打电话getAccessToken编号 :setAccessToken你自己来.(token: AccessToken) => void- 行为就像true以每件新获得的符文,都引用你的召喚.
const client = await createBlizzardApiClient({ key, secret, origin: 'eu' }, (token) => {
console.log('Refreshed token', token.access_token);
});
如果有的话 token 在选项中提供,首先验证。 仍然有效的令牌被再用,在快过期时会安排刷新;过期或无效的令牌立即被刷新. 刷新计时器是 unref"d,所以他们从来没有保持你的流程.
发送请求
将一个资源从一个游戏包传递到 sendRequest。从资源中推断出响应类型,并可以提供每个请求的覆盖:
import { wow } from '@blizzard-api/wow';
const response = await client.sendRequest(wow.commodities(), {
locale: 'de_DE',
// Any other ClientOptions field can be overridden per request,
// including kyOptions for retries, timeouts, hooks, etc.
kyOptions: { timeout: 10_000 },
});
sendRequest 决定: undefined 返回的终点 204 No Content 或为一空相.
API 密码
客户端回来了 createBlizzardApiClient (实例 BlizzardApiClient揭露:
| 成员 | 说明 |
|---|---|
defaults | 已解决的默认 key, (中文(简体) ), secret, (中文(简体) ), origin, (中文(简体) ), locale,当前 token。 。 。 . |
sendRequest(resource, options?) | 发送资源请求并返回其输入的响应(或) undefined 用于空回复). |
getAccessToken(options?) | 使用客户端证书流请求新的访问令牌 . |
refreshAccessToken(options?) | 请求新的访问符并存储在客户端上. |
validateAccessToken(options?) | 在Blizzard的OAuth端点验证访问令牌. |
setAccessToken(token) | 手动设定用于后续请求的访问符. |
getRequestUrl(resource, options?) | 在不发送的情况下构建一个资源的请求 URL . |
getRequestConfig(resource, options?) | 构建标题并搜索资源参数而不发送 . |
认证
请参看 battle.net 文档 如何获得布莱扎德API证书的指南.