Wir entwickeln eine Website auf der von unserem Kunden alle ImmobilienScout-Objekte aufgelistet werden sollen (die, die veröffentlicht sind).
Wir nutzen dafür das PHP SDK.
Zum Test haben wir eine Testseite eingerichtet.
Dort versuchen wir Zugriff mittels „fullUserSearch“ zu erhalten. Leider funktioniert dies überhaupt nicht.
<?php
require_once('Immocaster/Sdk.php');
$sImmobilienScout24Key = 'Dantec-ImmobilienKey';
$sImmobilienScout24Secret = 'hrvBnYCyeFSXB3kW';
$oImmocaster = Immocaster_Sdk::getInstance('is24',$sImmobilienScout24Key,$sImmobilienScout24Secret);
$meUsername = "Dantec-Immobilien";
$oImmocaster->setDataStorage(array('mysql','dbXXX.db.1und1.com','dbXXXX’,'XXXX','dbXXXX')); $oImmocaster->setContentResultType('json');
$oImmocaster->enableRequestDebug(); // Zum deaktivieren: disableRequestDebug()
// $oImmocaster->setStrictMode(true);
$oImmocaster->setRequestUrl('live');
//$oImmocaster->authenticateWithoutDB(false); // Oder true
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Immocaster SDK</title>
<style type="text/css">
textarea { width: 900px; height: 200px; margin: 10px 0; }
#appVerifyButton { padding: 10px; background: #CCC; border: 1px solid #666; display: inline-block; }
#appVerifyInfo { color:#F00; font-weight: bold; font-size:20px; margin: 10px 0; }
#appVerifyInfo2 { color:#0F0; font-weight: bold; font-size:20px; margin: 10px 0; }
#appVerifyInfo3 { color:#00F; font-weight: bold; font-size:20px; margin: 10px 0; }
</style>
</head>
<body>
<h1>Registrierte Nutzer</h1>
<?php
print_r($oImmocaster->getAllApplicationUsers(array('string'=>true)));
?>
<h1>Komplette Ergebnisliste eines Maklers</h1>
<?php
$aParameter = array('username'=>$meUsername);
$res = $oImmocaster->fullUserSearch($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';
?>
<h1>Zertifizierung der Applikation durch den Makler</h1>
<?php
if(isset($_GET['main_registration']) || isset($_GET['state']))
{
if(isset($_POST['user'])){ $sUser=$_POST['user']; }
if(isset($_GET['user'])){ $sUser=$_GET['user']; }
$aParameter = array('callback_url'=>$sCertifyURL.'?user='.$sUser,'verifyApplication'=>true);
// Benutzer neu zertifizieren
$returnAuthentication = $oImmocaster->getAccess($aParameter);
if ($returnAuthentication === true)
{
echo '<div id="appVerifyInfo2">Zertifizierung in der MySQL Datenbank war erfolgreich.</div>';
}
elseif (is_array($returnAuthentication) && count($returnAuthentication) > 1)
{
echo '<div id="appVerifyInfo3">Zertifizierung war erfolgreich. Hier finden Sie Access Token und Token Secret kommasepariert und url enkodiert.</div>';
echo '<div class="codebox"><textarea>'.implode(",", $returnAuthentication).'</textarea></div>';
}
else
{
echo '<div id="appVerifyInfo">Es ist etwas schief gelaufen. Troubleshooting: Benutzer ist bereits in der MySQL Datenbank zertifiziert oder es besteht keine Verbindung zur Datenbank.</div>';
}
}
echo '<form action="'.$sCertifyURL.'?main_registration=1" method="post">';
echo '<div id="appVerifyButton"><strong>Hinweis: Unter IE9 kann es zu Problemen mit der Zertifizierung kommen.</strong>';
echo '<br />Benutzername: <input type="text" name="user" value="' . $meUsername . '" /><br />';
echo '<em>Der Benutzername sollte nach Möglichkeit gesetzt werden. Standardmäßig wird ansonsten "me" genommen. Somit können aber nicht mehrere User parallel in der Datenbank abgelegt werden. Der gewählte Benutzernamen muss der gleiche wie im Formular auf der nächsten Seite sein, damit der Token richtig zugewiesen werden kann.</em><br />';
echo '<input type="submit" value="Jetzt zertifizieren" /></div></form>';
?>
</body>
</html>
Wenn wir sodann die Zertifizierung vornehmen möchten, werden wir auf die ImmoScout Website weitergeleitet (wo wir eigentlich den Zugriff erteilen sollten), erhalten dort aber folgende Fehlermeldung:
In der Sandbox können wir den Request korrekt absetzen. Nur über das obige Skript nicht.
Wo liegt das Problem? Das Tutorial ist leider auch nicht besonders aussagekräftig. Wir sind für jede Hilfe dankbar.