Announcement

Collapse
No announcement yet.

Immobilienscout über XML Api einbinden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Immobilienscout über XML Api einbinden

    Hi,

    Ich bin am verzweifeln, bitte helft mir...

    Auf Immobilienscout24.de gibts eine Anleitung, wie man mittels der Api die Objekte abfragen kann, um sie in die eigene Homepage zu integrieren. Da sind auch wunderbare Codebeispiele, aber ich verstehe diese einfach nicht zusammenzubringen... Als erstes soll man das hier nehmen:


    <?xml version="1.0" encoding="UTF-8" ?>
    <CreateSessionRequest xmlns="http://www.immobilienscout24.de/api/schema/general/1.0">
    <accesskey>Ihr API-Key</accesskey>
    <vendor>Ihre Vendor-ID/Scout-ID/Kundennummer</vendor>
    </CreateSessionRequest>


    und um eine einfache Abfrage zu machen dann:

    <?xml version="1.0" encoding="UTF-8" ?>
    <QueryRequest xmlns="http://www.immobilienscout24.de/api/schema/request/1.0">
    <ResultPage pageNumber="0" pageSize="50" pictureType="Result">
    <Sorting name="Heading" order="ASC" />
    </ResultPage>
    <MultiQuery>
    <AppartmentRentQuery />
    </MultiQuery>
    </QueryRequest>

    Als testvendor steht die: 6687764 zur Verfügung was auch immer das ist und eine API Nummer habe ich auch zu bieten. was ich nicht verstehe ist, wo ich den Code einfügen muss, damit er auch ein Ergbnis bringt?

    Stephan

  • #2
    Steht doch da

    " Diese schicken Sie dann per http-Post an die URL"
    http://api.immobilienscout24.de/api/xmlhttp/SessionService
    Christian

    Comment


    • #3
      Ich find die Anleitung auch hervorragend, kann bloß mit der Struktur noch nichts anfangen. Wenn ich einen Einstieg hätte, könnte ich mir den Rest sicher mit Learning by Doing erschließen.

      Also ich stell mir das momentan so vor, dass ich eine HTML Datei erstelle in die ich den Code untereinander in den Body einfüge und dann noch irgendwo einen Code einfüge, der mir das per http-post übergibt? Oder brauche ich eine extra Datei? Immobilienscout bietet ja auch noch so ein php-sdk kit an. Ist das das gleiche, oder eine andere Methode? Das spuckt bei mir nur Fehlermeldungen aus, wen ich es auf den Server hochgeladen habe und die examples.php aufrufe...

      Comment


      • #4
        So wird das nicht gehen:

        Entweder du machst das serverseitig mit einer Programmiersprache wie JAVA, PHP, PERL u.a. und sendest den Request, bekommst die Antwort, und bastelst die HTML-Seite zusammen.

        Oder clientseitig (was ja zuzeit irgendwie Mode ist) mit Javascript und einem AJAX-Post-Request das sendest bekommst die Antwort, und modifizierst die schon geladene HTML-Seite. Dann schau dir dazu das JQuery-Javascript-Framework an
        Christian

        Comment


        • #5
          ah Ok, dann weiß ich zumindest wozu dieses PHP-SDk Kit ist;-)

          Also auf der testsite.php von denen steht folgender Code. Die site hab ich auf zwei veschiedenen Servern getestet und beides mal unterschiedliche Fehler bekommen. Liegt das Probblem an den Servern? einmal Strato und einmal Hosting.padberg


          Bei Strato bekomm ich: Call-time pass-by-reference has been deprecated in /mnt/web5/12/50/5780650/htdocs/immoscout/ApiWrapper.php on line 355 bestimmt 50 mal untereinander wenn ich auf die Aufforderung am Bildschirm die API eingegeben hab und bei padberg kommt dann eine schönes:

          Catchable fatal error: Object of class Net_Socket could not be converted to string in /var/www/vhosts/msg.hosting.padberg.at/httpdocs/ecco/common/xml/XmlRequest.php on line 165



          <?php
          /** Testseite f�r die Api-PHP-SDK
          *
          * Created on: 25.06.2008
          * Last Modified: 25.06.2008
          * Version 1.0 Beta
          *
          * Diese ist eine Testseite. Sie ist nicht vollst�ndig und wird auch nicht supported. Sie soll daher nur eine Hilfe bei
          * der Erstellung einer Seite sein.
          * F�r Dokumentationen und Kommentare schauen sie bitte in die examples.php. Dort wird auch erl�utert, wie eine Suche realisiert wird
          */

          header('Content-Type: text/html; charset=UTF-8');
          if (empty($_REQUEST['request']) || $_REQUEST['apikey'] == 'Ihr Freischaltcode/Api-Key'){
          sessionLeeren();
          if ($_REQUEST['apikey'] == 'Ihr Freischaltcode/Api-Key')echo 'Bitte geben Sie Ihren Freischaltcode ein!';
          echo '<form action=testsite.php method="post">
          <input type="text" name="apikey" value="Ihr Freischaltcode/Api-Key" size="50"/><br/>';
          echo '<input type="submit" name="request" value="LOS!"/>
          </form>';
          }
          else{
          /* Inkludiert die Datei ApiWrapper.php */
          require_once("ApiWrapper.php");



          /* Array aus dem Api-Key und einem Vendor(Scout-ID/Kundennummer) Hinweis: Wenn sie mit einer B�rse arbeiten, verwenden sie
          * das n�chste Access-Array und kommentieren dieses aus oder entfernen es.
          */
          $access = array(
          'apiKey' => $_REQUEST['apikey'],
          'vendor' => '87753'); //Testvendor: Bitte mit Ihrem ersetzen!


          /* Erzeugt ein neues Objekt der ApiWrapper-Klasse.
          * Diesem Objekt wird das Access-Array �bergeben.
          * Es wird automatisch die ben�tigen Sessions der Api erstellt und das Objekt in einer Session gespeichert.
          * Sie k�nnen diese Klasse sofort f�r Ihre Anfragen benutzen.
          * @param array access Array aus Api-Key und Vendor oder Vendorgroup
          */
          $apiwrapper = new ApiWrapper($access);



          if ($_REQUEST['request'] == 'expose'){
          echo '<a href="testsite.php?request=ergebnisliste">zur&uuml ;ck zur Ergebnisliste</a></br></br>';
          $value = $apiwrapper->getExpose($_REQUEST['uuid'],PictureType::Expose);
          echo '<table>
          <tr>
          <td colspan="2"><h2>'.$value->Heading.'</h2></td>
          </tr>
          <tr>
          <td valign="top" width="350px">
          <table>
          <tr>
          <td><strong>Kaltmiete:</strong></td>
          <td>'.$value->netRent->value.' Euro</td>
          </tr>
          <tr>
          <td><strong>Nebenkosten:</strong></td>
          <td>'.$value->additionalCosts->value.' Euro</td>
          </tr>
          <tr>
          <td><strong>Heizkosten:</strong></td>
          <td>'.$value->heatingCosts->value.' Euro</td>
          </tr>
          <tr>
          <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
          <td><strong>Wohnfl&auml;che:</strong></td>
          <td>'.$value->netArea.' qm</td>
          </tr>
          <tr>
          <td><strong>Anzahl R&auml;ume:</strong></td>
          <td>'.$value->noRooms.'</td>
          </tr>
          </tr>
          <tr>
          <td><strong>Geb&auml;udetyp:</strong></td>
          <td>'.$value->buildingType.'</td>
          </tr>
          <tr>
          <td><strong>Balkon:</strong></td>
          <td>';
          if ($value->hasBalcony==1)echo 'Ja';else echo 'Nein';
          echo '</td>
          </tr>
          <tr>
          <td><strong>Garten:</strong></td>
          <td>';
          if ($value->hasGarden==1)echo 'Ja';else echo 'Nein';
          echo '</td>
          </tr>
          <tr>
          <td><strong>Zustand:</strong></td>
          <td>'.$value->condition.'</td>
          </tr>
          <tr>
          <td><strong>verf&uuml;gbar ab:</strong></td>
          <td>'.$value->availableDate.'</td>
          </tr>
          <tr>
          <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
          <td valign="top"><strong>Adresse: </strong></td>
          <td>'.$value->Address->street.' '.$value->Address->houseNo.'<br/>
          '.$value->Address->zip.' '.$value->Address->city.'
          </td>
          </tr>
          <tr>
          <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
          <td valign="top"><strong>Kontakt: </strong></td>
          <td>'.$value->ContactAddress->company1.'<br/>
          '.$value->ContactAddress->salutation.' '.$value->ContactAddress->firstName.' '.$value->ContactAddress->lastName.'<br/>
          '.$value->ContactAddress->street.' '.$value->ContactAddress->houseNo.'<br/>
          '.$value->ContactAddress->zip.' '.$value->ContactAddress->city.'<br/>
          '.$value->ContactAddress->eMail.'
          </td>
          </tr>
          </table>
          </td>
          <td>';
          foreach($value->Attachments->Picture as $picture){
          echo '<img src="'.$picture->urls['Expose'].'"><br/><br/><br/>';
          }
          echo '</td>
          </tr>
          </table>
          <br/>
          ';

          /* Verbindung zu Virtual Earth (Bitte schauen sie hier in die Nutzungsbedingungen von Microsoft http://dev.live.com/virtualearth/sdk/)*/
          echo '<head>
          <title></title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
          <script type="text/javascript">
          var map = null;

          function GetMap()
          {
          map = new VEMap(\'myMap\');
          map.LoadMap(new VELatLong('.$value->latitude.', '.$value->longitude.'), 16 ,\'h\' ,false);
          }
          </script>
          </head>
          <body onload="GetMap();">
          <div id=\'myMap\' style="position:relative; width:400px; height:400px;"></div>
          </body>';
          }
          else{
          $pageNumber=0;
          if ($_REQUEST['pageNumber'])$pageNumber=$_REQUEST['pageNumber']-1;
          $types = array('AppartmentRent');
          $sorting = array (SortAttribute::Zip => SortOrder::ASC,SortAttribute::Heading => SortOrder:ESC);
          $test = $apiwrapper->allRealEstateStandardRequest($types, $pageNumber, $pageSize=10,PictureType::Result,$sorting);
          for ($i=1;$i<$test['numberOfPages']+1;$i++){
          if (($pageNumber+1) == $i)
          echo $i.'&nbsp;&nbsp;&nbsp;';
          else
          echo '<a href="testsite.php?request=ergebnisseite&pageNumbe r='.$i.'">'.$i.'</a>&nbsp;&nbsp;&nbsp; ';
          }
          echo '<hr/>';
          foreach ($test['VendorRealEstatesResult'] as $value){
          echo '
          <table>
          <tr>
          <td colspan="4"><a href="testsite.php?request=expose&uuid='.$value->uuid.'">'.$value->Heading.'</a></td>
          </tr>
          <tr>
          <td width="120px"><strong>Preis:</strong></td>
          <td width="150px">'.$value->price->value.' Euro</td>
          <td width="250px" rowspan="3"><img src="'.$value->pictureURL.'"></td>
          </tr>
          <tr>
          <td><strong>Anzahl R&auml;ume:</strong></td>
          <td>'.$value->netArea.' qm</td>
          </tr>
          <tr>
          <td><strong>Wohnfl&auml;che:</strong></td>
          <td>'.$value->noRooms.'</td>
          </tr>
          <tr>
          <td valign="top"><strong>Adresse: </strong></td>
          <td>'.$value->street.' '.$value->houseNo.'<br/>
          '.$value->zip.' '.$value->addressCity.'
          </td>
          </tr>
          </table>
          <br/>
          ';
          }
          echo '<hr/>';
          for ($i=1;$i<$test['numberOfPages']+1;$i++){
          if (($pageNumber+1) == $i)
          echo $i.'&nbsp;&nbsp;&nbsp;';
          else
          echo '<a href="testsite.php?request=ergebnisseite&pageNumbe r='.$i.'">'.$i.'</a>&nbsp;&nbsp;&nbsp; ';
          }
          }
          }

          function sessionLeeren(){
          session_start();
          $_SESSION['api'] = '';
          $_SESSION['zeit'] = '';
          }
          ?>

          Comment


          • #6
            Dann würde ich im PHP Forum hier unter Angabe des Fehlers und des formatierten Codes eine entsprechende Frage stellen...
            Christian

            Comment


            • #7
              Alles klar, Danke Dir soweit,-)

              Also meinst Du auch, dass ich im Endeffekt später diese von Immobilienscout angeboteten php dateien auf mich abwandeln muss?

              Ist mir schon wesentlich sympathischer:-)

              Der Fehler wird sich schon finden!

              Comment

              Working...
              X