REST Webservices
Aus TecArt-CRM Developer-Wiki
Modulen
- REST Webservice Activities
- REST Webservice Appointments
- REST Webservice Bookmarks
- REST Webservice Calls
- REST Webservice Contacts
- REST Webservice Contracts
- REST Webservice CTI
- REST Webservice Documents
- REST Webservice Emails
- REST Webservice Logon
- REST Webservice Offers
- REST Webservice Projects
- REST Webservice Tasks
- REST Webservice Tickets
- REST Webservice Vacations
Nutzen der CRM REST-API:
Mit den CRM REST-APIs kann man einfach die Funktionen über einen HTTP-Aufruf einer URL steuern, um Daten aus dem CRM zu holen oder in das System zu schreiben. Die einkommenden Daten können in den Formaten XML, JSON oder als serialisierte Zeichenketten geliefert werden.
Zurückgeliefert werden die Daten als XML, JSON-, serialisierte Zeichenkette oder ein Textstring mit einer Fehlermeldung.
- Erforderliche REST Input Parameters:
| Parameter | Beschreibung |
|---|---|
| method | Name der aufgerufenen Methode. |
| request_type | Data format der input parameters (JSON, XML, serialize). Wird nur beim POST Aufruf benötigt. |
| response_type | Erwünschte data format für das Ergebnis (JSON, XML, serialize) |
| params | Eingabedata |
- Format des XML Inputs:
Wenn Sie XML als Format für die Eingabe der Daten benutzen möchten, verwenden Sie bitte folgende XML Vorlage:
<?xml version='1.0' encoding='utf-8'?>
<elements>
<params>
<param1>...</param1>
<param2>...</param2>
</params>
</elements>
- CRM REST-API unterstützt GET und POST Requests:
Alle Funktionen unterstützen POST Requests. GET Requests sollten nur bei den Funktionen verwendet werden, welche Daten aus dem CRM System lesen.
Beispiel 1: Anmelden am CRM-System. Benutzt GET Request.
Beim Aufruf wird die Session-ID im JSON-Format zurückgeliefert.
<?php /* Achtung: beim Aufruft als GET Request müssen die Input Daten unformatiert übergeben werden. * Deshalb ist es nicht nötig, 'request_type' zu setzen */ $url = "http://hostname/dirname/rest/index.php/logon?method=crmLogin&response_type=JSON&username=testuser&password=testpassword"; $response = file_get_contents($url); $session_id = json_decode($response); echo "Session ID: " . $session_id; ?>
Beispiel 2: Anmelden am CRM-System. Benutzt POST Request.
Die Login-Daten werden im XML-Format übergeben und beim Aufruf wird die Session-ID im Serialize-Format zurückgeliefert.
<?php $xml = "<?xml version='1.0' encoding='utf-8'?> <elements> <params> <username>testuser</username> <password>testpassword</password> </params> </elements>"; $args = array('request_type' => 'XML', 'response_type' => 'serialize', 'method' => 'crmLogin', 'params' => $xml); $curl = curl_init('http://hostname/dirname/rest/index.php/logon'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($args)); $response = curl_exec( $curl ); curl_close( $curl ); $session_id = unserialize($response); echo "Session ID: " . $session_id; ?>
Das CRM-REST-API Objekt:
Wenn Sie PHP mit der Version >= 5.0 für die Implementierung der CRM REST-API verwenden, wird empfohlen, unsere Crm_rest_api zu benutzen. Es vereinfacht und ermöglicht eine übersichtlichere Implementierung. Sie können die REST-Methoden wie Methoden der Klasse crm_rest_api aufrufen.
- Wenn ein Fehler auftritt, wird eine Exception mit Fehlermeldung geworfen.
Beispiel 1: Anmelden am CRM-System. Beim Aufruf wird die Session-ID zurückgeliefert.
<?php // include the crm_rest_api PHP file include_once 'crm_rest_api.php'; try { // URL zu dem gewünschten Modul (Logon) $logon = new crm_rest_api("http://hostname/dirname/rest/index.php/logon"); $params = array('username' => 'testuser', 'password' => 'testpassword'); // Aufruf zur crmLogin Method. $session_id = $logon->crmLogin($params); echo '<b>Session ID:</b><br>'.$session_id.'<br><br>'; } catch (Exception $e) { echo 'Exception abgefangen: ' .$e->getMessage(). "\n"; } ?>
Beispiel 2: Hole alle Termine vom Benutzer mit der ID = 4 und für das Jahr 2011.
<?php include_once 'crm_rest_api.php'; try { // Session ID für den HTTP Aufruf holen. $logon = new crm_rest_api("http://hostname/dirname/rest/index.php/logon"); $params = array('username' => 'testuser', 'password' => 'testpassword'); $session_id = $logon->crmLogin($params); // Alle Termine für den User mit ID:4 und für das Jahr 2011 holen $dates = new crm_rest_api("http://hostname/dirname/rest/index.php/dates"); $params = array('session_id' => $session_id, 'userid' => 4, 'day' => 0, 'month' => 0, 'year' => 2011); $result = $dates->crmgetAppointments($params); if(is_object($result)) { // listing the appointments subject $appointments = get_object_vars($result); foreach($appointments as $appointment) { echo $appointment->subject . "<br>"; } } else { echo 'Es wurde kein Termin für den Zeitraum gefunden!'; } } catch (Exception $e) { echo 'Exception abgefangen: ' .$e->getMessage(). "\n"; } ?>
