Das Simply CRM Web Service Tutorial

Bietet einfach eine einfache, leistungsstarke und sichere Anwendungsprogrammierschnittstelle (API) für die Arbeit mit den darin gespeicherten Entitäten. Um dieses Dokument verwenden zu können, sollten Sie mit Softwareentwicklung, Webdiensten und Simply CRM vertraut sein.

Der Webdienst bietet eine einfachere Möglichkeit, Simply einfach in Ihre anderen Softwaresysteme zu integrieren.

Die API-Aufrufeigenschaften

REST – API ist REST-basiert, was bedeutet, dass die gesamte Kommunikation zwischen dem Client und dem Server über HTTP in Form von GET- oder POST-Anforderungen erfolgen kann.

JSON – JSON wird verwendet, um die Antwort und die Anforderung zu codieren.

Anforderungen und Antworten – Ihre Clientanwendung bereitet eine Serviceanforderung vor und sendet sie an die API. Die API verarbeitet die Anforderung und gibt eine Antwort zurück. Anschließend verarbeitet die Clientanwendung die Antwort.

Automatisch festgeschrieben – Jede Operation, die in ein Simply-Objekt schreibt, wird automatisch festgeschrieben. Dies ist analog zur Einstellung AUTOCOMMIT in SQL.

Die API-Antwort

Antwortobjekt

Alle Antworten haben eines der folgenden beiden Formate.

Wenn die Anfrage erfolgreich verarbeitet wurde:

 <code> Antwort { 
Erfolg: Boolean = true
Ergebnis: Objekt // Das Operationsergebnisobjekt
}}
</ code>

Wenn während der Verarbeitung der Anforderung ein Fehler auftritt:

 <code> Antwort { 
Erfolg: Boolean = false
Fehler: ErrorObject
}}
</ code>

Fehlerobjekt

 <code> ErrorObject { 
errorCode: String // String-Darstellung des Fehlertyps
errorMessage: String // Fehlermeldung von der API.
}}
</ code>

errorCode ist eine Zeichenfolgendarstellung des Fehlertyps.

Fehlerbehandlung

Die Antwort auf eine Webdienstanforderung ist ein JSON-Objekt. Das Objekt hat einen Felderfolg, der den Wert true hat, wenn die Operation erfolgreich war, und andernfalls false. Wenn der Erfolg falsch ist, enthält das Antwortobjekt einen Feldfehler, der das JSON-Objekt enthält. Das Fehlerobjekt enthält zwei Felder errorType, eine Einzelwortbeschreibung des Fehlers, und errorMsg, eine Zeichenfolge, die eine Beschreibung des Fehlers enthält.

Der Beispielcode ist in PHP geschrieben und hat zwei Abhängigkeiten: die Zend JSON-Bibliothek und Http_Client.

Die Anforderungen zum Ausführen von Beispielen finden Sie im Tutorial

  1. Eine Installation von Simply mit dem Webdienst;
  2. PHP, um den Beispielcode auszuführen;
  3. HTTP_Client, der durch eine pear install HTTP_Client ;
  4. Zend JSON, für das Sie das Minimal- Zend- Framework herunterladen müssen.

Einloggen

Die API verwendet das Kennwort nicht für Anmeldungen. Stattdessen stellt Simply jedem Benutzer einen eindeutigen Zugriffsschlüssel zur Verfügung. Um den Benutzerschlüssel zu erhalten, rufen Sie das Bedienfeld Meine Einstellungen eines bestimmten Benutzers auf. Dort finden Sie das Feld Zugangsschlüssel.

Jede Anmeldung startet eine Clientsitzung mit dem Server, authentifiziert den Benutzer und gibt eine Sitzungs-ID zurück, die für die gesamte nachfolgende Kommunikation mit dem Server verwendet wird.

Das Anmelden erfolgt in zwei Schritten. Im ersten Schritt erhält der Client das Challenge-Token vom Server, das zusammen mit dem Zugriffsschlüssel des Benutzers zum Anmelden verwendet wird.

GetChallenge

Holen Sie sich ein Challenge-Token vom Server. Dies muss eine GET-Anfrage sein.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = getchallenge

& username = [Benutzername]
</ code>

GetChallenge-Beispiel

Um das Challenge-Token zu erhalten, müssen Sie den folgenden Code ausführen.

 <code> // zB // URL-Pfad zu Simply / webservice.php wie http: //Simply_url/webservice.php 
$ endpointUrl = "http: //localhost/ws/webservice.php";
// Benutzername des Benutzers, der angemeldet sein soll.
$ userName = "admin";

$ httpc = new HTTP_CLIENT ();
// getchallenge request muss eine GET request sein.
$ httpc-> get ("$ endpointUrl? operation = getchallenge & username = $ userName"); $ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Überprüfen Sie, ob die angeforderte Operation erfolgreich war oder nicht.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('getchallenge failed:'. $ jsonResponse ['error'] ['errorMsg']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort. $ ChallengeToken = $ jsonResponse ['Ergebnis'] ['Token'];
</ code>

GetChallenge-Ergebnis

Ein Objekt, das das Antwortergebnis einer Getchallenge-Operation darstellt.

 <code> GetChallengeResult { 
Token: String // Token vom Server herausfordern.
serverTime: TimeStamp // Die aktuelle Serverzeit.
expireTime: TimeStamp // Die Zeit, zu der das Token abläuft.
}}
</ code>

Nachdem Sie das Challenge-Token haben, können Sie mit der Anmeldung fortfahren. Das Zugriffsschlüsselfeld im Anmeldevorgang ist die md5-Prüfsumme der Verkettung des Challenge-Tokens und des eigenen Zugriffsschlüssels des Benutzers. Der Anmeldevorgang ist im Gegensatz zu getchallenge eine Post-Anfrage.

Anmeldung

Melden Sie sich mit dem im getchallenge-Vorgang erhaltenen Challenge-Token beim Server an.

URL-Format

 <code> Anforderungstyp: POST 
http: //Simply_url/webservice.php? operation = login

& username = [Benutzername]
& accessKey = [accessKey]
</ code>

Erstellen Sie für accessKey eine md5-Zeichenfolge, nachdem Sie den Benutzerzugriffsschlüssel auf der Seite Meine Einstellungen und das aus dem Ergebnis getchallenge erhaltene Herausforderungstoken verkettet haben.

Anmeldebeispiel

 <code> // zB 
// Zugriffsschlüssel des Benutzeradministrators auf meiner Einstellungsseite.
$ userAccessKey = 'dsf923rksdf3';

// Erstelle einen MD5-String, der den Benutzerzugriffsschlüssel von meiner Einstellungsseite verkettet
// und das Herausforderungstoken, das aus dem Ergebnis der Herausforderung erhalten wurde.
$ generateKey = md5 ($ ChallengeToken. $ userAccessKey);
// Anmeldeanforderung muss POST-Anforderung sein.
$ httpc-> post ("$ endpointUrl",
array ('operation' => 'login', 'username' => $ userName,
'accessKey' => $ generateKey), true);
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Anmeldung fehlgeschlagen:'. $ jsonResponse ['error'] ['errorMsg']);

// Anmeldung erfolgreich extrahieren sessionId und userId aus LoginResult extrahieren, um für weitere Aufrufe verwendet zu werden.
$ sessionId = $ jsonResponse ['result'] ['sessionName'];
$ userId = $ jsonResponse ['result'] ['userId'];

</ code>

Die Sitzungs-ID wird zur Identifizierung der aktuellen Sitzung verwendet und ist ein gemeinsamer Parameter bei allen nachfolgenden Anforderungen.

Anmeldeergebnis

Ein Objekt, das das Antwortergebnis einer Anmeldeoperation darstellt.

Informationen erhalten

Die API bietet zwei Operationen, um Informationen zu den verfügbaren Simply-Objekten abzurufen.

Der erste ist listtypes, der eine Liste der verfügbaren Module enthält. Diese Liste enthält nur Module, auf die der angemeldete Benutzer Zugriff hat.

Listentypen

Listen Sie die Namen aller über die API verfügbaren Simply-Objekte auf.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = listtypes

& sessionName = [Sitzungs-ID]
</ code>

Gibt eine Karte zurück, die die Schlüsseltypen enthält, wobei der Wert eine Liste der Simply-Objektnamen ist.

Beispiel für Listentypen

 <code> // listtypes request muss GET request sein. 
$ httpc-> get ("$ endpointUrl? sessionName = $ sessionId & operation = listtypes");
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Listentypen fehlgeschlagen:'. $ jsonResponse ['error'] ['errorMsg']);
// Liste aller Module abrufen, auf die zugegriffen werden kann.
$ modules = $ jsonResponse ['result'] ['types'];
</ code>

Die zweite Operation wird beschrieben und bietet detaillierte Typinformationen zu einem Simply-Objekt.

Beschreiben

Rufen Sie die Typinformationen zu einem bestimmten Simply-Objekt ab.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = beschreiben

& sessionName = [Sitzungs-ID]
& elementType = [elementType]
</ code>

Beispiel beschreiben

 <code> // zB 
// Einfach Objektname, der beschrieben werden muss oder dessen Informationen angefordert werden.
$ moduleName = 'Kontakte';

// Verwenden Sie die zum Zeitpunkt der Anmeldung erstellte Sitzungs-ID.
$ params = "sessionName = $ sessionId & operation = description & elementType = $ moduleName";
// Beschreibungsanforderung muss GET-Anforderung sein.
$ httpc-> get ("$ endpointUrl? $ params");
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Objekt beschreiben fehlgeschlagen:'. $ jsonResponse ['error'] ['errorMsg']);
// beschreibe Ergebnisobjekt. $ description = $ jsonResponse ['result'];

</ code>

Die Beschreibung besteht aus folgenden Feldern:

Name Beschreibung
Etikette Die Bezeichnung für den Namen des Moduls.
Name Der Name des Moduls.
Erstellbar Ein boolescher Wert, der angibt, ob das Objekt erstellt werden kann.
Aktualisierbar Ein boolescher Wert, der angibt, ob das Objekt aktualisiert werden kann.
Löschbar Ein boolescher Wert, der angibt, ob das Objekt gelöscht werden kann.
Abrufbar Ein boolescher Wert, der angibt, ob das Objekt abgerufen werden kann.
Felder Ein Array, das die Feldnamen und ihre Typinformationen enthält.

Jedes Element im Feldarray beschreibt ein bestimmtes Feld im Objekt.

Das Typfeld ist besonders wichtig, da es beschreibt, um welchen Feldtyp es sich handelt. Dies ist eine Karte, die mindestens ein Element namens name enthält, das den Namen des Typs angibt.

Name Beschreibung
String Ein einzeiliges Textfeld.
Text Ein mehrzeiliges Textfeld.
Ganze Zahl Ein mehrzeiliges Textfeld.
Doppelt Ein Feld für Gleitkommazahlen.
Boolescher Wert Ein boolesches Feld, das die Werte true oder false haben kann.
Zeit Eine Zeichenfolge im Format hh: mm, die auf den Zeitformateinstellungen des Benutzers basiert.
Datum Eine Zeichenfolge, die ein Datum darstellt. Die Typzuordnung enthält ein weiteres Element namens Format. Dies ist das Format, in dem der Wert dieses Felds erwartet wird. Es basiert auf dem Datumsformat der Benutzereinstellungen.
Terminzeit Eine Zeichenfolge, die Datum und Uhrzeit darstellt und auf den Datumsformateinstellungen des Benutzers basiert.
Automatisch generiert Die Felder, für die die Werte automatisch von Simply generiert werden. Dies ist normalerweise das ID-Feld eines Objekts.
Referenz Ein Feld, das eine Beziehung zu einem anderen Objekt anzeigt. Die Typzuordnung enthält ein weiteres Element namens referenzTo, bei dem es sich um ein Array handelt, das die Module enthält, auf die das Feld verweisen kann.
Auswahlliste Ein Feld, das eine Liste von Werten enthalten kann. Die Karte enthält zwei Elemente: picklistValues (eine Liste möglicher Werte) und defaultValue (Standardwert für die Auswahlliste).
Multipickliste Ein Auswahllistenfeld, in dem mehrere Werte ausgewählt werden können.
Telefon Ein Feld zum Speichern von Telefonnummern.
Email Ein Feld zum Speichern von E-Mail-IDs.
URL Ein Feld zum Speichern von URLs.
Skype Ein Feld zum Speichern von Skype-IDs oder Telefonnummern.
Passwort Ein Feld zum Speichern von Passwörtern.
Inhaber Ein Feld, das den Eigentümer des Felds definiert. Dies kann eine Gruppe oder ein einzelner Benutzer sein.

Ergebnis beschreiben

 <code> DescribeResult { 
label: String // label des Moduls.
name: String // Name des Moduls, wie in der Anfrage angegeben.
createeable: Boolean // true, wenn der angemeldete Benutzer Datensätze vom Typ erstellen darf, andernfalls false.
aktualisierbar: Boolean // true, wenn der angemeldete Benutzer Datensätze vom Typ aktualisieren darf, andernfalls false.
löschbar: Boolean // true, wenn der angemeldete Benutzer Datensätze vom Typ löschen darf, andernfalls false.
Abrufbar: Boolescher Wert // true, wenn der angemeldete Benutzer abrufbare Datensätze vom Typ und andernfalls false abrufen darf.
Felder: Array // Array vom Typ Feld.
}}
</ code>

Feld

 <code> Feld { 

<pre class = "_ fck_mw_lspace"> name: String // Name des Feldes.


label: String // Bezeichnung des Feldes.
obligatorisch: Boolean // true, wenn beim Erstellen einer Anforderung ein Wert angegeben werden muss, andernfalls false.
Typ: FieldType // Eine Instanz von FieldType.
Standard: anyType // Der Standardwert für das Feld.
nillable: Boolean // true, wenn null einen Wert für das Feld liefern kann, andernfalls false.
editierbar: Boolean // true, wenn das Feld beim Erstellen oder Aktualisieren einen Wert erhalten kann.
}}
</ code>

Feldtyp

Error 400 (Bad Request)!!1

400. That’s an error.

Your client has issued a malformed or illegal request. That’s all we know.

Beispiel 3

Erstellen Sie einen Kontakt und ordnen Sie ihn einem neuen Konto zu.

 <code> // zB 3 
<p> // Erstelle einen Kontakt und verbinde ihn mit einem neuen Konto.
</ p> <p> // Geben Sie die Details der Konten ein. userId wird von loginResult erhalten.
$ accountData = array ('accountname' => 'Simply', 'assign_user_id' => $ userId);
// Codiere das Objekt im JSON-Format, um mit dem Server zu kommunizieren.
$ objectJson = Zend_JSON :: encode ($ accountData);
// Name des Moduls, für das der Eintrag erstellt werden muss.
$ moduleName = 'Accounts';
</ p> <p> // sessionId wird von loginResult abgerufen.
$ params = array ("sessionName" => $ sessionId, "operation" => 'create',
</ p>
<pre class = "_ fck_mw_lspace"> "element" => $ objectJson, "elementType" => $ moduleName);

// Erstellen muss POST Request sein. $ httpc-> post ("$ endpointUrl", $ params, true); $ response = $ httpc-> currentResponse (); // Dekodiere die JSON-Codierungsantwort vom Server. $ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)

// den Fehlerfall behandeln.
die ('create failed:'. $ jsonResponse ['error'] ['errorMsg']);

$ account = $ jsonResponse ['result']; $ accountId = $ account ['id'];

$ contactData = array ('lastname' => 'Valiant', 'assign_user_id' => $ userId, 'account_id' => $ accountId);

// Codiere das Objekt im JSON-Format, um mit dem Server zu kommunizieren. $ objectJson = Zend_JSON :: encode ($ contactData); // Name des Moduls, für das der Eintrag erstellt werden muss. $ moduleName = 'Kontakte';

// sessionId wird von loginResult erhalten.
$ params = array ("sessionName" => $ sessionId, "operation" => 'create',

"element" => $ objectJson, "elementType" => $ moduleName);

// Erstellen muss POST Request sein. $ httpc-> post ("$ endpointUrl", $ params, true); $ response = $ httpc-> currentResponse (); // Dekodiere die JSON-Codierungsantwort vom Server. $ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)

// den Fehlerfall behandeln.
die ('create failed:'. $ jsonResponse ['error'] ['errorMsg']);
$ savedObject = $ jsonResponse ['result']; $ id = $ savedObject ['id'];

</ code> </ pre>

CreateResult

Eine Karte, die den Inhalt eines auf CRM-Entitäten basierenden Objekts darstellt. Alle Referenzfelder werden mit dem ID- Typ dargestellt. Ein Schlüssel namens ID vom Typ ID stellt dabei die eindeutige ID des Objekts. Dieses Feld ist für jedes aus der Datenbank abgerufene Objekt vorhanden.

Abrufen

Rufen Sie einen vorhandenen Eintrag vom Server ab.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = retrieve
& session_name = [Sitzungs-ID]
& id = [Objekt-ID

</ code>

Beispiel abrufen

Verwenden Sie die Abrufoperation, um ein Objekt mit seiner ID abzurufen. Sie können den im Erstellungsbeispiel erstellten Kontakt abrufen.

 <code> // sessionId wird von loginResult abgerufen. 
$ params = "sessionName = $ sessionId & operation = retrieve & id = $ id";
// Abrufen muss GET Request sein.
$ httpc-> get ("$ endpointUrl? $ params");
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);
// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.

if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Abruf fehlgeschlagen:'. $ jsonResponse ['error'] ['errorMsg']);

$ retrievedObject = $ jsonResponse ['result'];
</ code>

RetrieveResult

Error 400 (Bad Request)!!1

400. That’s an error.

Your client has issued a malformed or illegal request. That’s all we know.

Beispiel 2

Geben Sie die Spalten an, die für jeden Datensatz abgerufen werden sollen.

 <code> // Abfrage zur Auswahl von Daten vom Server. 
$ query = "Wählen Sie Nachname, Vorname, Konto-ID, zugewiesene Benutzer-ID aus Kontakte aus, wobei Nachname = 'Valiant';";
// Urlencode an als über http gesendet.
$ queryParam = urlencode ($ query);
// sessionId wird aus dem Anmeldeergebnis abgerufen.
$ params = "sessionName = $ sessionId & operation = query & query = $ queryParam";
// Abfrage muss GET Request sein.
$ httpc-> get ("$ endpointUrl? $ params");
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Abfrage fehlgeschlagen:'. $ jsonResponse ['errorMsg']);

// Array von SimplyObjects
$ retrievedObjects = $ jsonResponse ['result'];
</ code>

Dies gibt ein Array zurück, das Arrays enthält, die die Felder jedes Objekts darstellen, das der Abfrage entspricht.

QueryResult

QueryResult ist ein Array von SimplyObjects.

SimplyObject

Eine Karte, die den Inhalt eines auf Crmentity basierenden Objekts darstellt. Alle Referenzfelder werden mit dem ID- Typ dargestellt. Ein Schlüssel namens ID vom Typ ID stellt dabei die eindeutige ID des Objekts. Dieses Feld ist für jedes aus der Datenbank abgerufene Objekt vorhanden.

Abfrageformat

 <code> wähle * | <Spaltenliste> | <count (*)> 
von <Objekt> [wobei <Bedingungen>]
[Reihenfolge nach <Spaltenliste>] [Limit [<m>,] <n>];

</ code>

Die Spaltenliste in der order by-Klausel kann höchstens zwei Spaltennamen enthalten.

Name Beschreibung
column_list Eine durch Kommas getrennte Liste von Feldnamen.
Objekt Der Typname des Objekts.
Bedingungen Die bedingten Operationen oder in Klauseln oder ähnlichen Klauseln, die durch 'und' oder 'oder' Operationen getrennt sind, werden von links nach rechts verarbeitet. Es gibt keine Gruppierung, dh Klammeroperatoren.
bedingte Operatoren <,>, <=,> =, = ,! =
in Klauseln <Spaltenname> in (<Werteliste>).
wie Klauseln <Spaltenname> in (<Wertmuster>).
Werteliste Eine durch Kommas getrennte Liste von Werten.
m, n Die ganzzahligen Werte zur Angabe des Versatzes bzw. des Grenzwerts.

Synchronisieren

Sync gibt ein SyncResult-Objekt zurück, das die Details der Änderungen nach ModifiedTime enthält.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = sync

& sessionName = [Sitzungs-ID]
& modifyTime = [Zeitstempel]
& elementType = [elementType]
</ code>

elementType – Dies ist ein optionaler Parameter. Wenn angegeben, werden nur die Änderungen für dieses Modul nach der angegebenen Zeit zurückgegeben. Andernfalls werden die Änderungen an allen vom Benutzer zugänglichen Modulen nach der angegebenen Zeit zurückgegeben.

TimeStamp – Eine lange Darstellung der Anzahl der Sekunden seit der Unix-Epoche.

Beispiel 1

Erstellen Sie ein Konto und erfassen Sie es in der Synchronisierungs-API.

Die Antwort enthält das Konto, das erstellt wurde.

Beispiel 2

Erstellen Sie ein Konto und einen Kontakt, verwenden Sie die Synchronisierungs-API nur für das Modul "Konten". Es werden nur Änderungen am Modul "Konten" zurückgegeben.

 <code> // Zeit, nach der alle Änderungen auf dem Server benötigt werden. 
$ stime = time ();
// Erstelle jetzt einige Daten, damit sie von der Sync-API-Antwort erfasst werden.

// Geben Sie die Details der Accounts.userId ein, die von loginResult abgerufen wird.
$ accountData = array ('accountname' => 'Simply', 'assign_user_id' => $ userId);
// Codiere das Objekt im JSON-Format, um mit dem Server zu kommunizieren.
$ objectJson = Zend_JSON :: encode ($ accountData);
// Name des Moduls, für das der Eintrag erstellt werden muss.
$ moduleName = 'Accounts';

// sessionId wird von loginResult erhalten.
$ params = array ("sessionName" => $ sessionId, "operation" => 'create',
"element" => $ objectJson, "elementType" => $ moduleName);
// Erstellen muss POST Request sein.
$ httpc-> post ("$ endpointUrl", $ params, true);
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('create failed:'. $ jsonResponse ['error'] ['errorMsg']);
$ createResult = $ jsonResponse ['result'];

// Kontakt erstellen.
// Geben Sie die Details der Kontakte ein. Die Benutzer-ID wird von loginResult abgerufen.
$ contactData = array ('lastname' => 'Valiant', 'assign_user_id' => $ userId);
// Codiere das Objekt im JSON-Format, um mit dem Server zu kommunizieren.
$ objectJson = Zend_JSON :: encode ($ contactData);
// Name des Moduls, für das der Eintrag erstellt werden muss.
$ moduleName = 'Kontakte';

// sessionId wird von loginResult erhalten.
$ params = array ("sessionName" => $ sessionId, "operation" => 'create',
"element" => $ objectJson, "elementType" => $ moduleName);
// Erstellen muss POST Request sein.
httpc-> post ("$ endpointUrl", $ params, true);
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('create failed:'. $ jsonResponse ['error'] ['errorMsg']);
$ savedObject = $ jsonResponse ['result'];
$ id = $ savedObject ['id'];

$ params = "operation = sync & modifyTime = $ stime & sessionName = $ sessionId";

// Sync muss GET Request sein.
$ httpc-> get ("$ endpointUrl? $ params");
$ response = $ httpc-> currentResponse ();
// Dekodiere die JSON-Codierungsantwort vom Server.
$ jsonResponse = Zend_JSON :: decode ($ response ['body']);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if ($ jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Abfrage fehlgeschlagen:'. $ jsonResponse ['errorMsg']);
// Array von SimplyObjects
$ retrievedObjects = $ jsonResponse ['result'];

</ code>

SyncResult

Ein Objekt, das die Antwort einer Synchronisierungsoperation darstellt.

 <code> SyncResult { 
aktualisiert: [Objekt] // Liste der erstellten oder geänderten Objekte.
gelöscht: [Id] // Liste der * Id * der gelöschten Objekte.
lastModifiedTime: Timstamp // Zeitpunkt der letzten Änderung. Dies kann beim nächsten Aufruf der Sync-API verwendet werden, um die neuesten Änderungen abzurufen, die der Client nicht erhalten hat.
}}
</ code>

Ausloggen

Ausloggen

Melden Sie sich von der Webdienstsitzung ab, wodurch die Webservice-Sitzung für die weitere Verwendung ungültig wird.

URL-Format

 <code> Anforderungstyp: GET 

http: //Simply_url/webservice.php? operation = logout

& sessionName = [Sitzungs-ID]
</ code>

Beispiel

Erweitern des Simply-Webclients mithilfe des Webdienstes

Sitzung verlängern

Erweitert die aktuelle Simply-Webclient-Sitzung auf den Webdienst und gibt eine Webservice-Sitzungs-ID zurück. Wenn Sie im Simply-Webclient arbeiten, kann der Benutzer die aktuelle authentifizierte Sitzung wiederverwenden, anstatt sich erneut bei Simply anzumelden, um auf den Webdienst zuzugreifen.

Hinweis: Wenn der Benutzer eine Sitzung verlängert, wird die Sitzung miteinander verknüpft, sodass beim Abmelden von einem (dem Webdienst oder dem Webclient) der Benutzer auch vom anderen abgemeldet wird. Damit der Vorgang zum Erweitern der Sitzung funktioniert, müssen Cookies im Client-Browser aktiviert sein.

URL-Format

 <code> Anforderungstyp: POST 

http: //Simply_url/webservice.php? operation = extensession

</ code>

Beispiel

 <code> 
</ code>

Dieses Beispiel ist Javascript, da die Sitzung verlängern nur vom Simply-Webclient gültig ist.

Voraussetzungen, um das Beispiel auszuführen

  • JQUERY-Bibliothek – um die Ajax-http-Anfrage auszuführen.
  • JSON-Bibliothek – json2.js-Datei verfügbar mit Simply unter json.org.

Beispiel 1

 <code> 
// Betriebsparameter.
var params = "operation = extensession";
// Endpunkt der Dienste.
var endPointUrl = "http: //Simply_url/webservice.php";

// verlängernSession ist Post-Anfrage, rufe jquery http Post-Anfrage auf.
$ .post (endPointUrl, params, function (result) {
// Dekodiere die JSON-Codierungsantwort vom Server.
var jsonResponse = json.parse (Ergebnis);

// Operation war erfolgreich Holen Sie sich das Token aus der Antwort.
if (jsonResponse ['success'] == false)
// den Fehlerfall behandeln.
die ('Anmeldung fehlgeschlagen:' + jsonResponse ['error'] ['errorMsg']);

// Anmeldung erfolgreich extrahieren Sie sessionId und userId aus LoginResult, damit sie für weitere Aufrufe verwendet werden können.
var sessionId = jsonResponse ['result'] ['sessionName'];
var userId = jsonResponse ['result'] ['userId'];
});
</ code>

Aktualisiert am 24/09/2020

War dieser Artikel hilfreich?

In Verbindung stehende Artikel