PROBLEM: Die Applikation muss vor der Nutzung dieser Funktion zertifiziert werden, da für diesen Nutzer noch kein Token zertifizert wurde.

576 views
Skip to first unread message

Nicolas

unread,
Oct 18, 2014, 3:39:48 PM10/18/14
to immobilienscou...@googlegroups.com
Hallo,

1. für eine Kunden-Webseite versuche ich gerade die "GetAll" Funktion (alle Objekte eines Maklers) zu implementieren. wenn ich in die beigefügte index.php die $sImmobilienScout24Key und $sImmobilienScout24Secret eintrage und die "fullUserSearch" einkommentiere sehe ich die o.g. Fehlermeldung. 

"Ergebnisliste abfragen per Region" zeigt ebenfalls diese Meldung:

        <messageCode>ERROR_COMMON_ACCESS_DENIED</messageCode>
        <message>No authorization for this operation.</message>


auf playground konnte ich mich erfolgreich authentifizieren und die Liste als XML oder JSON sehen (siehe bitte Anhang)

2. eigentlich habe ich erwartet, dass der authentifiziere Token in der Datenbank geschrieben wird. Die Tabelle "immocaster" wird zwar erstellt, bleibt aber die ganze Zeit leer. Auf der Seite kann ich diese 2 Meldungen sehen:

Warning: mysql_query() expects parameter 2 to be resource, null given in \include\Immocaster\Data\Mysql.php on line 314

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in include\Immocaster\Data\Mysql.php on line 315

Könnte bitte jemand mir helfen? Danke.

api_playground.jpg

Nicolas

unread,
Oct 20, 2014, 2:56:13 AM10/20/14
to immobilienscou...@googlegroups.com
Hallo,

der zweite Punkt hat sich erledigt und ich bekomme jetzt die Einträge in DB geschrieben. Das Problem war die Rewrite-Einstellung in .htaccess, welche die OAuth-Parameter nicht weitergegeben hat.

Der erste Punkt funktioniert nach wie vor nicht.

Danke

Fabian Mielke | IS24

unread,
Oct 20, 2014, 3:03:27 AM10/20/14
to immobilienscou...@googlegroups.com
Hallo Nicolas,

super, dass du das erste lösen konntest. 

Wegen dem zweiten: Das ist so gewollt. Du hast dich beim Registrieren für die API für die Usescases "Maklerwebsite / Immobilienverwaltungssoftware" entschieden. Dieser Zugriff berechtigt dich Objekte eines Maklers vollständig zuzugreifen. Objekte rufst du entweder mit GETALL (fullUserSearch) oder mit einem modifizierten Search Request: http://api.immobilienscout24.de/our-apis/search/queryparameters.html#search-by-channels. Nur Search Request mit Parameter "username" darfst du mit diesem Zugriff ausführen, andere Search Request werden abgelehnt.

Nur mit der Wahl als "Content Partner" darfst du im Komplettbestand von IS24 suchen. Da du aber eine Kundenwebsite bauen möchtest, brauchst du diesen Zugriff nicht.

MfG Fabian

Nicolas

unread,
Oct 20, 2014, 3:12:00 AM10/20/14
to immobilienscou...@googlegroups.com
Hallo Fabian,

danke für deine Antwort. Wie ich schon in der Beschreibung geschrieben habe "wenn ich in die beigefügte index.php die $sImmobilienScout24Key und $sImmobilienScout24Secret eintrage und die "fullUserSearch" einkommentiere sehe ich die o.g. Fehlermeldung." daher verstehe ich nicht was ich sonnst hätte tun müssen. Es Irritiert mich um so mehr, dass die Anfrage auf Playground schon funktioniert.

echo '<h2>Komplette Ergebnisliste eines Maklers</h2><br />';
$aParameter
= array('username'=>'immobil');
$res
= $oImmocaster->fullUserSearch($aParameter);
echo
'<div class="codebox"><textarea>'.$res.'</textarea></div>';



Danke und viele Grüße
Nicolas

Fabian Mielke | IS24

unread,
Oct 20, 2014, 3:23:13 AM10/20/14
to immobilienscou...@googlegroups.com
Wie lautet dein Key? Dann schaue ich mal nach deinen Berechtigungen!

Nicolas

unread,
Oct 20, 2014, 5:39:21 AM10/20/14
to immobilienscou...@googlegroups.com
Immobil2014Key für LIVE und 
immobil-testzugangKey für SandBox

Danke

Fabian Mielke | IS24

unread,
Oct 20, 2014, 7:28:28 AM10/20/14
to immobilienscou...@googlegroups.com
Wie erwartet hast du die Berechtigung für die Sandbox und Live Objekte eines Makler abzurufen, zu beschreiben und zu löschen. Somit ist ein GETall Realestate Request (fullUserSearch) auf jeden Fall möglich. Das ist schlüssig mit dem, was du im Playground gesehen hast.

Einen Eintrag mit "immobil" und APPLICATION findest du nun in der Datenbank, ja?
Funktionieren andere Requests?
Hast du die RequestURL mit der Funktion setRequestUrl richtig gesetzt?

In dem Username "immobil" auf dem produktiven System konnte ich keinen Vertrag finden. Ist das der richtige Username für das produktive System? Um sicher zu gehen, nenne mir mal die Kundennummer des Maklers, auf den du zugreifen möchtest. Du musst beim Authentifizieren den Username des Maklers angeben, damit die Requests erfolgreich sind.

MfG Fabian

Nicolas

unread,
Oct 20, 2014, 2:33:01 PM10/20/14
to immobilienscou...@googlegroups.com
Hallo,

ich habe testweise einen Benutzer auf sandbox erstellt und ihn "immobil" genannt damit ich als erstes die Anbindung zur IS24 implementieren kann. Und werde für den produktiven Einsatz die Zugangsdaten des Maklers benutzen (welche ich noch nicht habe :) )

- Ich habe in der DB einen Eintrag mit "immobil" und APPLICATION.
- Regionen und GIS-Geo Service funktionieren und liefern Ergebnisse. Alle andere Anfragen kommen mit einer Fehlermeldung zurück. (siehe bitte den Anhang)

ich kann in Firebug keinen Request richtig sandbox.immobilienscout24.de feststellen, ist das Normal?

hier ist meine gesamter Code. Das Ergebnis habe ich wie erwähnt als Anhang hinzugefügt. Vielen Dank für deine Hilfe:

<?php

define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__ . '/include/Immocaster/Sdk.php');

$sImmobilienScout24Key    = 'immobil-testzugangKey';
$sImmobilienScout24Secret = 'XXXXXX';
$oImmocaster              = Immocaster_Sdk::getInstance('is24',$sImmobilienScout24Key,$sImmobilienScout24Secret);

$oImmocaster->setDataStorage(array('mysql','localhost','root','xxxxxx','immocaster', true));

$oImmocaster->setRequestUrl('sandbox');
$oImmocaster->setReadingType('curl');
$oImmocaster->setContentResultType('json');
$oImmocaster->enableRequestDebug();

/*
$sCertifyURL = 'http://localhost:83/index.php?page=mietangebote'; // Komplette URL inkl. Parameter auf der das Script eingebunden wird
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
    if($oImmocaster->getAccess($aParameter))
    {
        print_r($oImmocaster->getAccess($aParameter));
        echo '<div id="appVerifyInfo">Zertifizierung war erfolgreich.</div>';
    }
    else
    {
        // Test ob Benutzer schon zertifiziert ist
        if($oImmocaster->getApplicationTokenAndSecret($sUser))
        {
            echo '<div id="appVerifyInfo">Dieser Benutzer ist bereits zertifiziert.</div>';
        }
    }
}
echo '<form action="'.$sCertifyURL.'&main_registration=1" method="post"><div id="appVerifyButton"><strong>Hinweis: Unter IE9 kann es zu Problemen mit der Zertifizierung kommen.</strong><br />Benutzername: <input type="text" name="user" /><br /><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 /><input type="submit" value="Jetzt zertifizieren" /></div></form>';
*/

/**
 * Regionen ermitteln.
 */
echo '<h2>Regionen ermitteln</h2>';
$aParameter = array('q'=>'Ber');
$res        = $oImmocaster->getRegions($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';

/**
 * Geodaten ermitteln.
 */
echo '<h2>GIS - Geo Service</h2>';
$aParameter = array('country-id'=>276,'region-id'=>2,'list'=>true);
$res        = $oImmocaster->geoService($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';

/**
 * Ergebnisliste abfragen per Radius.
 */
echo '<h2>Ergebnisliste abfragen per Radius</h2>';
$aParameter = array('geocoordinates'=>'52.52546480183439;13.369545936584473;2','realestatetype'=>'apartmentrent');
$res        = $oImmocaster->radiusSearch($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';

/**
 * Ergebnisliste abfragen per Region.
 */
echo '<h2>Ergebnisliste abfragen per Region</h2>';
$aParameter = array('geocodes'=>1276003001,'realestatetype'=>'apartmentrent');
$res        = $oImmocaster->regionSearch($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';

/**
 * Ergebnisliste mit allen Objekten eines Maklers abfragen.
 */
echo '<h2>Komplette Ergebnisliste eines Maklers</h2><br/>Diese Funktion wurde auskommentiert, da der Benutzer hierfür die Applikation zertifizieren muss und die Berechtigung von IS24 für diese Funktion benötigt.<br/><br/>';
$aParameter = array('username'=>'immobil', 'channel'=>'homepage');
$res = $oImmocaster->fullUserSearch($aParameter);
echo '<div class="codebox"><textarea>'.$res.'</textarea></div>';

is24_fehler.jpg

Fabian Mielke | IS24

unread,
Oct 21, 2014, 6:01:32 AM10/21/14
to immobilienscou...@googlegroups.com
Hallo Nicolas,

für solche Fälle legen wir selbst Sandbox-User an. Die haben dann bereits ein gebuchtes Paket, welches es dir erlaubt Objekte einzustellen, abzurufen und zu löschen. Credentials lasse ich dir gleich per Mail zukommen. Authentifiziere diesen User neu, check die DB und feuer den Reqeust erneut ab.

MfG Fabian

Nicolas

unread,
Oct 21, 2014, 2:25:17 PM10/21/14
to immobilienscou...@googlegroups.com
Hallo,

vielen Dank für die Zusendung der Anmeldedaten. Wahrscheinlich brauche ich auch eine neue API Key und Secret, da immer bei der Anmeldung mit dem bestehenden Key diese Meldung erscheint (löschen der Cookie, Browserdaten usw. hat nicht geholfen)

Es ist ein Fehler aufgetreten:
Das gelieferte Token ist ungültig, abgelaufen oder wurde bereits verwendet. Bitte wiederholen Sie den Vorgang in der Fremdapplikation.

Bitte überprüfen Sie außerdem die korrekte Schreibweise von API Key und Secret. Übrigens funktionieren die API Zugänge nur für das ausgewiesene System (Sandbox oder Live).



Viele Grüße

DA

Fabian Mielke | IS24

unread,
Oct 27, 2014, 9:01:36 AM10/27/14
to immobilienscou...@googlegroups.com
Hallo Nicolas,

nein, Key und Secret bleiben gleich. Klappt die Authentifizierung im Playground? http://playground.immobilienscout24.de/rest/playground

Gebe dazu oben links Key und Secret für das entsprechende System ein und klicke dich danach unten links durch das oAuth-Frame.

MfG Fabian

hoom...@gmail.com

unread,
Oct 31, 2014, 3:49:18 PM10/31/14
to immobilienscou...@googlegroups.com
vielen herzlichen Dank, es funktioniert einwandfrei.

--
Sie erhalten diese Nachricht, weil Sie in Google Groups ein Thema der Gruppe "immobilienscout24-development" abonniert haben.
Wenn Sie sich von diesem Thema abmelden möchten, rufen Sie https://groups.google.com/d/topic/immobilienscout24-development/plO94Ypp92I/unsubscribe auf.
Wenn Sie sich von dieser Gruppe und allen Themen dieser Gruppe abmelden möchten, senden Sie eine E-Mail an immobilienscout24-de...@googlegroups.com.
Wenn Sie in dieser Gruppe einen Beitrag posten möchten, senden Sie eine E-Mail an immobilienscou...@googlegroups.com.
Gruppe besuchen: http://groups.google.com/group/immobilienscout24-development
Wenn Sie diese Diskussion im Web verfolgen möchten, rufen Sie https://groups.google.com/d/msgid/immobilienscout24-development/9ab95aee-9173-42c9-a568-5b518e1015ac%40googlegroups.com auf.

Weitere Optionen finden Sie unter https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages