Я создаю плагин, который отображает кнопку на странице через короткий код. Когда кнопка нажата, она должна отправить запрос на внешний API и получить аудиофайл. Поскольку URL-адрес API включает ключ API, я не думаю, что могу использовать AJAX для отправки запроса – это откроет ключ API в источнике страницы.
Итак, как мне это достичь?
Получение ответа от API довольно просто с PHP. Я сделал что-то вроде этого:
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 не открыт?
Чтобы сохранить секретный ключ, вам придется отправить запрос через AJAX, который говорит «gimme the mp3» на сервер, позвольте серверу обмениваться данными с поставщиком услуг и вернуть результат в ответ на запрос AJAX. Таким образом, ни в какой момент вы не раскрываете какой-либо секрет в общей сети.