2013-10-25 61 views
0

我想使用Steam WEB API生成一些关于游戏的统计信息。为了使用Steam WEB API,我必须使用我应该隐藏的密钥。我想用JavaScript处理所有的数据处理,这不允许我隐藏密钥。所以我想出了这个解决方案。我在php中查询数据库,并将JSON对象传递给JavaScript。我的问题是这是否是这样做的首选或最佳方式。将JSON从PHP传递到JavaScript(隐藏Steam WEB API密钥)

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

应该有无需重新编码全部来自对JavaScript处理PHP文件解码检索的JSON数据。您可以编写JavaScript函数,通过传递PHP解码结果来完成他们所需的工作,并使用PHP调用JavaScript函数。

<?php 
    echo "<script>functionName(" . $parameter1 . ", " . $parameter2 . ");</script>"; 
?> 

假设$参数1和$参数2,你有一些来自API调用解码JSON数据制成PHP变量,该网页的HTML源将显示此像被通过硬编码的可变参数标准的JavaScript函数调用。

您的JavaScript函数可以完成所需的参数。

如果您的数据处理是“呈现一次”类型的事务,我建议您使用PHP而不是JavaScript来编写数据处理函数,以消除混淆,但是您可以根据需要传递所需内容PHP和JavaScript不发送所有数据。