2017-05-10 94 views
0

我想從API(igdb.com/api)獲取一些數據,但是我在通過身份驗證時遇到了問題。在PHP代碼中的API密鑰

由於我的網站是一個wordpress網站,我正在使用wp_remote_get來檢索來自HTTP請求的響應。此刻我的PHP代碼:

<?php 

require(dirname(__FILE__) . '/wp-load.php'); 

$request = wp_remote_get('https://igdbcom-internet-game-database-v1.p.mashape.com/games'); 

$headers = array(); 
$headers[] = 'Accept: application/json'; 
$headers[] = 'X-Mashape-Key: myKey'; 

$body = wp_remote_retrieve_body($request); 

$data_api = json_decode($body, true); 

var_dump($data_api); 

?> 

我得到的是「缺少Mashape應用的關鍵」的錯誤,所以我知道我的代碼是錯誤的,但無法弄清楚如何正確插入API密鑰。我從API文檔瞭解到,安裝Unirest可能會爲我提供便利,但不知道如何在wordpress中安裝此庫,並且無法找到任何有關此信息的信息。如果有人能告訴我改變我的代碼來通過認證,將不勝感激。

我的歉意是這是一個愚蠢的問題,因爲這對我來說都是新的。

+1

您配置'$ headers'完整的代碼,但你永遠不變量傳遞到任何函數調用。 – bishop

回答

3

您應該將標頭傳遞給請求。見文檔here

wp_remote_get('https://igdbcom-internet-game-database-v1.p.mashape.com/games', 
      array('headers' => array( 
          'Accept' => 'application/json', 
          'X-Mashape-Key' => mykey))); 

,並根據你的榜樣

<?php 

require(dirname(__FILE__) . '/wp-load.php'); 


$headers = array(); 
$headers[] = 'Accept: application/json'; 
$headers[] = 'X-Mashape-Key: myKey'; 

$request = wp_remote_get('https://igdbcom-internet-game-database-v1.p.mashape.com/games' , 
          array('headers' => $headers)); 


$body = wp_remote_retrieve_body($request); 

$data_api = json_decode($body, true); 

var_dump($data_api); 

?> 
+1

非常感謝您的回答!現在varp_dump返回NULL,但這是一個完全不同的問題,我會弄清楚,這意味着我已經通過身份驗證,所以再次感謝:) – Adrien