如何在单击按钮时从短代码进行安全API调用?

时间:2016-02-25 作者:user1448031

我正在构建一个插件,通过一个短代码在页面上显示一个按钮。单击该按钮时,应该向外部API发送请求并检索音频文件。由于API url包含一个API键,我认为我不能使用AJAX发送请求-这将在页面源代码中显示API键。

那么我该如何实现这一点呢?

使用PHP从API接收响应非常简单。我做过这样的事情:

function my_plugin_func() { .... $apikey = \'123456789abcdef\'; $apiurl = \'http://api.url/rest?apikey=\'.$apikey.\'&opt1=val1&opt2=val2\'; $response = wp_remote_get($apiurl); $results = wp_remote_retrieve_body($response); $filepath = \'/blah/blah/blah.mp3\'; file_put_contents($filepath, $results); $return_val = \'<button type="button">Get File</button>\'; return $return_val; } add_shortcode(\'my_plugin\', \'my_plugin_func\');

单击按钮时,如何使其工作?它是否可以通过AJAX工作,但要确保API密钥不被公开?

1 个回复
SO网友:Mark Kaplun

为了对密钥保密,您必须通过AJAX向服务器发送一个请求,上面写着“给我mp3”,让服务器与服务提供商通信,并在对AJAX请求的响应中返回结果。通过这种方式,您在任何时候都不会在通用web上泄露任何秘密。