最近,随着 Deno 的推出,前端工程师们可以更加轻松地使用 JavaScript 来构建后端应用程序。本文将介绍如何使用 Deno 和 Steam API 获取游戏数据,并提供示例代码。
准备工作
在开始之前,你需要安装 Deno,并注册一个 Steam 帐户并且需要创建一个 Steam API 密钥。
Steam API
Steam 提供了许多 API,可以在官方文档中找到(https://partner.steamgames.com/doc/webapi_overview)。在这里,我们将重点介绍以下两个 API:
GetOwnedGames
GetOwnedGames API 可以用来获取已安装的游戏列表。
interface GetOwnedGames { steamId: string; includeAppInfo?: boolean; includePlaytimeData?: boolean; appidsFilter?: number[]; callback?: string; }
steamId
是必要参数,它是 Steam ID64 格式的字符串。includeAppInfo
参数可选,默认情况下为 false。如果设置为 true,API 将包括有关每个游戏的详细信息,如名称和价格等。includePlaytimeData
参数也是可选的,默认为 false。如果设置为 true,API 将包括有关玩家上次游戏的详细信息,如玩家玩了多长时间等。appidsFilter
参数还是可选的,可以用于过滤掉你不需要的游戏。如果你使用了 appidsFilter
参数,则返回的结果中只会包含这些应用程序的信息。
GetPlayerSummaries
GetPlayerSummaries API 可以用于获取 Steam 用户的概要信息。
interface GetPlayerSummaries { steamIds: string; }
steamIds
参数是必要的,这是多个 Steam ID64 格式的字符串,由逗号分隔。如果只需要获取一个用户的信息,则此参数只需要一个 Steam ID。
Deno
接下来,我们将介绍如何使用 Deno 和 Steam API 来获取游戏数据。首先,我们需要一个 HTTP 请求来调用 API。
-- -------------------- ---- ------- ----- -------- -------------- ------- - ----- --- - ----- ----------- -- ----------- --- ---- - ----- --- ----------------- ------ ----- ---------------- - ----- --- - ----- ----------- -- ------------- - ----- --- -------------- ----- ------------------------- - ------ ----------- -
使用此函数,我们可以简单地调用 Steam API,并将结果转换为 JSON。接下来,我们需要一个函数来获取用户的游戏列表。
-- -------------------- ---- ------- --------- ------------- - -------- ------- ------------ ------- - --------- ---- - ------ ------- ----- ------- ----------------- ------- - ----- -------- ------------- --------- -------------- ------- ------- -- --------------- - ----- ----- - ----- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------ -- ------ ------------------------- -- ---------------------------- -
该函数获取用户的 Steam ID 和 API 密钥,并使用 Steam API 的 GetOwnedGames 接口请求用户的游戏列表。这里的 filter
函数用于过滤掉所有包含 "DLC" 字符串的游戏,因为我们只想获取 base 游戏的名称,而不包括任何 DLC 或升级内容。
最后,我们需要一个函数来获取用户的个人信息。
async function getUserInfo(userId: string, apiKey: string): Promise<SteamUserInfo> { const userInfo = await fetchJson( `http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=${apiKey}&steamids=${userId}&format=json`, ); return userInfo.players[0]; }
该函数获取 Steam ID 和 API 密钥,并使用 Steam API 的 GetPlayerSummaries 接口请求用户的个人信息。
代码示例
-- -------------------- ---- ------- ----- ------ - --------------- ----- ------ - ---------------- --- - ----- -------- - ----- ------------------- -------- ----- ----- - ----- ---------------------- -------- ------------------ -- ------------------------- ------------ -------------------- -- -------------- ------------ ------------------------- ------- - ----- ----- - ------------------- -
结论
在本文中,我们介绍了如何使用 Deno 和 Steam API 获取游戏数据。我们强烈建议你尝试使用这些技术,以便将它们应用于实际开发项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670568ded91dce0dc8533521