将JSON从PHP传递到JavaScript(隐藏Steam WEB API密钥)

时间:2013-10-25 10:50:10

标签: javascript json steam-web-api

我想使用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>

1 个答案:

答案 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没有发送所有数据。