Steam WebAPI jQuery脚本字段查看与自动入库问题咨询
查看接口返回的所有可用字段
你可以直接用浏览器自带的开发者工具查看实际返回的所有字段,操作步骤非常简单:
- 打开你运行脚本的页面,按F12调出开发者工具,切换到「控制台」标签页
- 在你现有脚本的
$.each(data.response.games, function(index, value) {这行代码下方,新增一行代码:console.log(value); - 保存代码后重新运行脚本,点击导出按钮,控制台就会逐行打印每个游戏对应的所有属性,你直接点开就能看到所有可使用的字段,
value.description、value.ownedAchievements是否存在一眼就能确认,比查官方文档更准确,是你调用接口实际返回的内容。
直接写入Docker SQL数据库的改造方法
你现在用的脚本是运行在浏览器中的前端JavaScript,受浏览器安全限制,无法直接连接SQL数据库,不过你可以用你正在学习的PHP做中转,实现直接入库,不需要导出CSV再手动导入,改造步骤如下:
- 提前在你的Docker SQL环境中建表,字段和你需要存入的
value.*属性一一对应,比如appid、name、playtime_forever等。 - 新建一个PHP文件,比如命名为
save_steam_games.php,用来接收前端数据并写入数据库,示例代码如下:
<?php // 以下配置替换成你自己Docker SQL的实际配置 $dbHost = '127.0.0.1'; $dbPort = '你Docker映射到本地的SQL端口,默认一般是3306'; $dbName = '你自己建的库名'; $dbUser = '你的SQL用户名'; $dbPass = '你的SQL密码'; $tableName = '你建的游戏数据表名'; // 连接数据库 $pdo = new PDO("mysql:host={$dbHost};port={$dbPort};dbname={$dbName};charset=utf8mb4", $dbUser, $dbPass); // 接收前端传过来的游戏数据 $games = json_decode($_POST['games'], true); // 遍历插入数据,需要新增字段的话对应修改INSERT语句和参数即可 foreach ($games as $game) { $stmt = $pdo->prepare("INSERT INTO {$tableName} (appid, name, playtime_forever) VALUES (?, ?, ?)"); $stmt->execute([ $game['appid'], $game['name'], $game['playtime_forever'] ]); } echo '入库完成'; ?>
- 修改原有前端脚本,把生成CSV下载的逻辑替换成发送数据给PHP接口的逻辑,替换后的
$.get部分代码示例如下:
$.get(url, function(data) { let allGames = []; $.each(data.response.games, function(index, value) { // 这里你可以根据需要加自定义字段 allGames.push(value); }); // 发送数据给PHP接口 $.post('save_steam_games.php', {games: JSON.stringify(allGames)}, function(res) { alert(res); }); });
- 把前端页面和PHP文件放到同一个PHP运行环境下运行即可,点击导出按钮就会自动把数据写入你的Docker SQL库中。
内容的提问来源于stack exchange,提问作者Pim
相关产品推荐
相关产品推荐

