2017-05-10 1 views
0

Ich versuche, einige Daten von einer API (igdb.com/api) zu bekommen, aber ich habe Probleme beim Passieren der Authentifizierung.API-Schlüssel in PHP-Code

Seit meiner Website eine Wordpress-Website verwende ich wp_remote_get auf die Antwort von der HTTP-Anforderung abgerufen werden. Mein PHP-Code im Moment:

<?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); 

?> 

Der Fehler, den ich bekommen ist „Mashape Anwendungsschlüssel fehlt“ so dass ich weiß, dass mein Code falsch ist, kann aber nicht herausfinden, wie der API-Schlüssel richtig einzufügen. Ich verstehe aus der API-Dokumentation, dass die Installation von Unirest die Dinge für mich erleichtern kann, aber keine Ahnung hat, wie diese Bibliothek in WordPress installiert wird und kann keine Informationen dazu finden. Wenn jemand mir sagen könnte, dass ich meinen Code ändern sollte, um eine Authentifizierung zu übergeben, die sehr geschätzt würde.

Meine Entschuldigung ist dies eine dumme Frage, da dies alles neu für mich ist.

+1

Sie konfigurieren '$ headers', aber man kann nie diese Variable in jedem Funktionsaufruf übergeben. – bishop

Antwort

3

Sie sollten die Header auf jeden Fall an die Anfrage übergeben. Siehe Dokumentation here

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

und der vollständige Code basierend auf dem Beispiel

<?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

Vielen Dank für Ihre Antwort! Jetzt gibt varp_dump NULL zurück, aber das ist ein ganz anderes Problem, das ich herausfinden werde und es bedeutet, dass ich die Authentifizierung passiert habe, also nochmals danke :) – Adrien