我想使用Steam WEB API生成一些有关游戏的统计信息。为了使用Steam WEB API,我必须使用我应该隐藏的密钥。我想用JavaScript进行所有数据处理,这不允许我隐藏密钥。所以我提出了这个解决方案。我在php中查询数据库,并将JSON对象传递给JavaScript。我的问题是这是否是首选或最佳方式。
PHP:
<?php
$matchDetailsUrl = "https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/? match_id=<MATCHID>&key=<KEY>";
$matchDetailsRaw = file_get_contents($matchDetailsUrl);
$matchDetailsJson = json_decode($matchDetailsRaw);
?>
JavaScript的:
<script>
var obj = JSON.parse('<?php echo json_encode($matchDetailsJson) ?>');
console.log(obj);
</script>
答案 0 :(得分:0)
不需要重新编码从PHP文件解码中检索的所有JSON数据以进行JavaScript处理。您可以通过从PHP解码传递结果来编写JavaScript函数来执行它们所需的操作,并使用PHP调用JavaScript函数。
<?php
echo "<script>functionName(" . $parameter1 . ", " . $parameter2 . ");</script>";
?>
假设$ parameter1和$ parameter2是您使用API调用中的一些已解码JSON数据创建的PHP变量,页面的HTML源代码将显示为标准JavaScript函数调用,并传递硬编码变量参数。
您的JavaScript函数可以执行它所需的参数。
如果你的数据处理是“渲染一次”类型的事情,我建议用PHP编写数据处理函数而不是JavaScript来消除混淆,但你绝对可以传递你需要的东西,因为你需要它PHP和JavaScript没有发送所有数据。