2017-01-27 2 views
-1

Ich kodiere eine Website für meinen Freund, der Habbo Hotel spielt, was ein virtuelles Spiel ist. Er hat mich mit einer API verbunden. http://habboemotion.com/guide/habinfo & http://habboemotion.com/guide/habboapiWas läuft mit dieser API falsch?

Ich habe diesen Code wurde unter Verwendung der Daten aus der api zu zeigen.

<?php 

    $info = habbo("Tyler", "com"); 
    if($info) { 
    foreach($info->user AS $name) { 
     echo $name->motto; 
    } 
    } else { 
    echo "Habbo not found"; 
    } 

?> 

Warum erscheint nichts? Es scheint nur ein leerer Bildschirm zu sein.

+1

Haben Sie das 'Habbo tatsächlich definieren()' Funktion in einer Datei und 'include/require' es wie in dem verknüpften Beispiel? Wenn Sie PHP-Code entwickeln und testen, aktivieren Sie immer die Fehleranzeige. Ein leerer Bildschirm, wenn die Ausgabe erwartet wird, weist normalerweise auf einen schwerwiegenden Fehler in Ihrem Code hin. Ganz oben im Skript: 'error_reporting (E_ALL); ini_set ('display_errors', 1); ' –

Antwort

0

Wie die vorherige Person sagte, stellen Sie sicher, dass Sie Ihre habbo() -Funktion einbeziehen.

Ich habe die Habbo() -Funktion geändert, um Gzip-Komprimierung und Gzinflate() zu entfernen. Das schien das Problem mit der leeren Seite zu beheben. Es scheint jedoch ein paar Sekunden zu dauern, um die Seite zu laden und ist auf der langsamen Seite.

Es würde auch scheinen, dass $ user-> Motto nicht erlaubt ist. Als solche habe ich es durch $ freunde-> Motto ersetzt.

Hoffe, das hilft! Ich bin immer noch sehr neu in APIs.

<?php 

error_reporting(E_ALL); // Debugging 
ini_set('display_errors', 1); // Debugging 

function habbo($name, $hotel) { 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://www.habbo." . $hotel .  "/api/public/users"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding: identity')); // Changed to "identity" 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 

$response = curl_exec($ch); // Added 
//$get = gzinflate(substr(curl_exec($ch), 10, -8)); 
//preg_match("/setCookie\((.*)\);/", $get, $get); 
//$get = explode(",", str_replace(array("'", " "), "", $get[1])); 

//curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie:" . $get[0] . "=" .  $get[1])); 
curl_setopt($ch, CURLOPT_URL, "http://www.habbo." . $hotel . "/api/public/users?name=" . $name); 

$id = json_decode(curl_exec($ch)); 

if(isset($id) && $id->profileVisible == 1) { 

    curl_setopt($ch, CURLOPT_URL, "http://www.habbo." . $hotel . "/api/public/users/" . $id->uniqueId . "/profile"); 
    $info = json_decode(curl_exec($ch)); 

} else 
    $info = false; 

curl_close($ch); 

return $info; 

} 

Hier ist die Anruffunktion:

$info = habbo("Tyler", "com"); 
if($info) { 
    foreach($info->friends AS $friend) { 
    echo $friend->motto . "<br />"; 
} 
} else { 
echo "habbo not found or homepage hidden"; 
} 

?>