Simply CRM Web Service Tutorial

Giver ganske enkelt en enkel, kraftfuld og sikker applikationsprogrammeringsgrænseflade (API) til at arbejde med de enheder, der er gemt i. For at bruge dette dokument skal du have et grundlæggende kendskab til softwareudvikling, webtjenester og Simply CRM .

Webservicen giver en nemmere måde at integrere Simply med dine andre softwaresystemer.

API-kaldets egenskaber

REST – API er REST baseret, hvilket betyder, at al kommunikation mellem klienten og serveren kan ske over HTTP i form af GET eller POST anmodninger.

JSON – JSON bruges til at kode svaret og anmodningen.

Anmodninger og svar – Din klientapplikation forbereder og sender en serviceanmodning til API'en. API'en behandler anmodningen og returnerer et svar, og derefter håndterer klientapplikationen svaret.

Forpligtet automatisk – Hver handling, der skriver til et Simply-objekt, forpligtes automatisk. Dette er analogt med AUTOCOMMIT-indstillingen i SQL.

API-svaret

Responsobjekt

Alle svar vil have et af følgende to formater.

Hvis anmodningen behandles med succes:

 <code>Svar{
succes: Boolean=sand
result:Object // Operation Result-objektet
}
</code>

Hvis der opstår en fejl under behandlingen af anmodningen:

 <kode>Svar{
succes: Boolesk=falsk
fejl: ErrorObject
}
</code>

Fejlobjekt

 <kode>ErrorObject{
errorCode:String //Stringrepræsentation af fejltypen
errorMessage:String //Fejlmeddelelse fra api'et.
}
</code>

errorCode er en strengrepræsentation af fejltypen.

Fejlhåndtering

Svaret for enhver webserviceanmodning er et JSON-objekt. Objektet har en feltsucces, som vil have værdien sand, hvis operationen var en succes, og ellers falsk. Hvis succes er falsk, vil svarobjektet indeholde en feltfejl, som vil indeholde JSON-objektet. Fejlobjektet vil indeholde to felter errorType, en enkelt ords beskrivelse af fejlen og errorMsg, en streng, der indeholder en beskrivelse af fejlen.

Eksempelkoden er skrevet i Php og har to afhængigheder, Laminas-biblioteket og Http_Request2.

Kravene til at køre eksempler givet i selvstudiet

  1. En installation af Simply with the web service;
  2. Php for at køre eksempelkoden;
  3. HTTP_Request2 som kan installeres ved at udføre en pear install HTTP_Request2 ;
  4. Laminas, som du skal downloade Laminas-rammeværket til.

Logger ind

API'en bruger ikke adgangskoden til login. I stedet giver Simply en unik adgangsnøgle til hver bruger. For at få brugernøglen skal du gå til panelet Mine præferencer for en bestemt bruger. Der finder du feltet Adgangsnøgle.

Vigtigt : Det er påkrævet at indtaste IP'en i Whitelist IP -feltet under Mine præferencer på brugerens profil i Simply CRM , der bruges til at få adgang til API'en.

Hvert login starter en klientsession med serveren, autentificerer brugeren og returnerer et sessionId, som vil blive brugt til al efterfølgende kommunikation med serveren.

Log ind er en to-trins proces. I det første trin henter klienten udfordringstokenet fra serveren, som bruges sammen med brugerens adgangsnøgle til at logge ind.

GetChallenge

Få et udfordringstoken fra serveren. Dette skal være en GET-anmodning.

URL-format

 <kode>Anmodningstype: GET

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

&brugernavn=[brugernavn]
</code>

GetChallenge eksempel

For at få udfordringstokenet skal du udføre følgende kode.

 <?php
require_once 'HTTP/Request2.php';
$endpointUrl = 'https://tr.simply-crm.dk/webservice.php';
//brugernavn på den bruger, der skal logge på.
$userName="API";

prøve {
$request = new HTTP_Request2($endpointUrl . "?operation=getchallenge&username=" . $userName, HTTP_Request2::METHOD_GET);
$respons = $request->send();
if (200 == $response->getStatus()) {
$jsonResponse = json_decode($response->getBody(),true);
$challengeToken = $jsonResponse['result']['token'];
echo $challengeToken;
} andet {
echo 'Uventet HTTP-status: ' . $response->getStatus() . ''.
$response->getReasonPhrase();
}

}catch (HTTP_Request2_Exception $e) {
echo 'Fejl:'. $e->getMessage();
}

?>

GetChallenge resultat

Et objekt, der repræsenterer responsresultatet af en getchallenge-operation.

 <code>GetChallengeResult{
token:String //Challenge token fra serveren.
serverTime:TimeStamp //Den aktuelle servertid.
expireTime:TimeStamp //Tidspunktet, hvor tokenet udløber.
}
</code>

Nu hvor du har udfordringstokenet, kan du gå videre med login. Adgangsnøglefeltet i login-operationen er md5-kontrolsummen af sammenkædningen af udfordringstokenet og brugerens egen adgangsnøgle. Login-operationen er i modsætning til getchallenge en postanmodning.

Log på

Log ind på serveren ved hjælp af udfordringstokenet, der blev opnået i getchallenge-operationen.

URL-format

 <kode>Anmodningstype:POST
http://Simply_url/webservice.php?operation=login

&brugernavn=[brugernavn]
&accessKey=[adgangsnøgle]
</code>

For accessKey skal du oprette en md5-streng efter sammenkædning af brugeradgangsnøgle fra siden Mine præferencer og udfordringstokenet fra getchallenge-resultatet.

Eksempel på login

Sessions-id'et bruges til at identificere den aktuelle session og vil være en fælles parameter i alle efterfølgende anmodninger.

Login resultat

Et objekt, der repræsenterer svarresultatet af en login-handling.

 <kode>Loginresultat{
sessionId:String //Unik Identifier for sessionen
userId:String //Simply-id'et for den loggede bruger
version:String //Versionen af webservices api
SimplyVersion:String //Versionen af Simply crm.
}
</code>

Får information

API'en giver to operationer til at få information om de tilgængelige Simply-objekter.

Den første er listetyper, som giver en liste over tilgængelige moduler. Denne liste indeholder kun moduler, som den loggede bruger har adgang til.

Listetyper

Liste navnene på alle Simply-objekter, der er tilgængelige via API'et.

URL-format

 <kode>Anmodningstype: GET

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

&sessionName=[sessions-id]
</code>

Returnerer et kort, der indeholder nøglen 'typer', hvor værdien er en liste over Simply-objektnavnene.

Eksempel på listetyper

 <code>//listtypes-anmodning skal være GET-anmodning.
$httpc->get("$endpointUrl?sessionName=$sessionId&operation=listtypes");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('listetyper mislykkedes:'.$jsonResponse['error']['errorMsg']);
//Få listen over alle tilgængelige moduler.
$modules = $jsonResponse['result']['typer'];
</code>

Den anden operation er beskrive, og den giver detaljerede typeoplysninger om et Simply-objekt.

Beskrive

Få typeoplysningerne om et givet Simply-objekt.

URL-format

 <kode>Anmodningstype: GET

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

&sessionName=[sessions-id]
&elementType=[elementType]
</code>

Beskriv eksempel

 <kode>//f.eks
//Simpelthen objektnavn, som skal beskrives, eller hvis oplysninger anmodes om.
$moduleName = 'Kontakter';

//brug sessionId oprettet på tidspunktet for login.
$params = "sessionName=$sessionId&operation=describe&elementType=$moduleName";
//beskriv anmodning skal være GET anmodning.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('describe object failed:'.$jsonResponse['error']['errorMsg']);
//get beskriv resultatobjekt. $description = $jsonResponse['resultat'];

</code>

Beskrivelsen består af følgende felter:

Hvert element i feltmatrixen beskriver et bestemt felt i objektet.

Navn Beskrivelse
Navn Navnet på feltet, som brugt internt af Simply.
Etiket Etiketten, der bruges til at vise feltnavnet.
Obligatorisk En boolean, der angiver, om feltet er obligatorisk. Obligatoriske felter skal angives ved oprettelse af et nyt objekt.
Type Et kort, der beskriver typeoplysningerne for feltet.
Standard Standardværdien for feltet.
Nullbar En boolean, der angiver, om feltet kan sættes til null.
Redigerbar En boolean, der angiver, om feltet kan ændres.

Typefeltet er særligt vigtigt, da det beskriver, hvilken type feltet er. Dette er et kort, der vil indeholde mindst ét element kaldet navn, som angiver navnet på typen.

Navn Beskrivelse
Snor Et tekstfelt på én linje.
Tekst Et tekstfelt med flere linjer.
Heltal Et tekstfelt med flere linjer.
Dobbelt Et felt til for flydende kommatal.
Boolean Et boolesk felt, som kan have værdierne sand eller falsk.
Tid En streng i formatet tt:mm, som er baseret på brugerens tidsformatindstillinger.
Dato En streng, der repræsenterer en dato, vil typekortet indeholde et andet element kaldet format, som er det format, som værdien af dette felt forventes i, og det er baseret på brugerens indstillingsdatoformat.
Dato tid En streng, der repræsenterer dato og klokkeslæt, som er baseret på brugerens indstillinger for datoformat.
Autogenereret De felter, som værdierne genereres automatisk for af Simply. Dette er normalt et objekts ID-felt.
Reference Et felt, der viser en relation til et andet objekt. Typekortet vil indeholde et andet element kaldet refersTo, som er et array, der indeholder de moduler, som feltet kan pege på.
Plukliste Et felt, der kan holde et af en liste over værdier. Kortet vil indeholde to elementer, picklistValues, som er en liste over mulige værdier, og defaultValue, som er standardværdien for pluklisten.
Multipickliste Et pluklistefelt, hvor flere værdier kan vælges.
telefon Et felt, der bruges til at gemme telefonnumre.
E-mail Et felt, der bruges til at gemme e-mail-id'er.
URL Et felt, der bruges til at gemme URL'er.
Skype Et felt, der bruges til at gemme Skype-id'er eller telefonnumre.
Adgangskode Et felt, der bruges til at gemme adgangskoder.
Ejer Et felt, der definerer ejeren af feltet, som kan være en gruppe eller en individuel bruger.

Beskriv resultatet

 <kode>Beskriv Resultat{
label:String //label for modulet.
name:String //navn på modulet, som et givet på anmodning.
createable:Boolean //true, hvis den loggede bruger er tilladt, skal du oprette poster af typen og falsk ellers.
updateable:Boolean //true, hvis den loggede bruger er tilladt at opdatere poster af typen og falsk ellers.
deleteable:Boolean //true, hvis den loggede bruger har tilladelse til at slette poster af type og falsk ellers.
retrieveable:Boolean //true, hvis den loggede bruger tillades genfindbare poster af typen og falsk ellers.
fields:Array //array af typen Felt.
}
</code>

Mark

Felttype

 <code>FieldType{
<pre class="_fck_mw_lspace"> navn:Type //felttype
refersTo:Array //en matrix af Simpelthen objektnavne på typer poster, som feltet kan henvise til, det er kun defineret til reference FieldType.
picklistValues:Array //en matrix af typen PicklistValue type. den er kun defineret for plukliste Fieldtype.
defaultValue:String //en værdi af den standard valgte pluklisteværdi, den er kun defineret for plukliste Fieldtype.
format:String //datoformat, hvor datotypefeltet skal udfyldes med f.eks. mm-dd-åååå. den er kun defineret for Dato Fieldtype.
}
</code>

Pluklistefeltets værdi skal angives eksplicit.

 <code>PicklistValue{
name:String //navn på valglisten.
value:String //værdi for valglisten.
}
</code>

Et eksempel på describeResult-objekt

//$beskrivelse fra eksemplet ovenfor. For eksempel kan print_r($description) vise:

 <kode>Array
(
[label] => Kontakter
[navn] => Kontakter
[skabelig] => 1
[opdateres] => 1
[deleteable] => 1
[kan hentes] => 1
[felter] => Array
(
[0] => Array
(
[navn] => konto-id
[label] => Kontonavn
[obligatorisk] =>
[type] => Array
(
[navn] => reference,
[refersTo] => Array
(
"Konti"
)
)
[standard] =>
[nillable] => 1
[redigerbar] => 1
)
)
)

</code>

CRUD Operationer

API'en giver operationer til at oprette, hente, opdatere og slette CRM-entitetsobjekter.

skab

Opret en ny post på serveren.

URL-format

 <kode>Anmodningstype: POST

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

&sessionName=[sessions-id]
&element=[objekt]
&elementType=[objekttype]

</code>

Skab eksempel

Eksempel 1

Du kan oprette en kontakt ved at bruge oprettelseshandlingen. I dette tilfælde er de obligatoriske felter efternavn og tildelt_bruger_id.

$savedObject er et kort, der indeholder felterne for det nye objekt, inklusive et ID-felt, som kan bruges til at henvise til objektet.

Eksempel 2

Opret en kontakt, og tilknyt den til en eksisterende konto.

 <kode>//f.eks. 2
//Opret en kontakt og tilknyt en eksisterende konto.
$queryResult = doQuery("vælg kontonavn,id fra konti, hvor kontonavn='Simpelthen';");
$accountId = $queryResult[0]['id'];
//For flere detaljer om, hvordan en forespørgsel anmoder henvises til eksemplet med forespørgselsoperation.

//udfyld detaljerne for contacts.userId er hentet fra loginResult.
$contactData = array('lastname'=>'Valiant', 'assigned_user_id'=>$userId,'account_id'=>$accountId);
//kode objektet i JSON-format for at kommunikere med serveren.
$objectJson = Zend_JSON::encode($contactData);
//navnet på det modul, som posten skal oprettes for.
$moduleName = 'Kontakter';

//sessionId er hentet fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opret',
"element"=>$objectJson, "elementType"=>$modulnavn);
//Opret skal være POST-anmodning.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$savedObject = $jsonResponse['resultat'];
$id = $savedObject['id'];
</code>

Eksempel 3

Opret en kontakt, og tilknyt den til en ny konto.

 <kode>//f.eks. 3
<p>//Opret en kontakt og tilknyt en ny konto.
</p><p>//udfyld detaljerne for regnskabet. bruger-id er hentet fra loginResult.
$accountData = array('accountname'=>'Simpelthen', 'assigned_user_id'=>$userId);
//kode objektet i JSON-format for at kommunikere med serveren.
$objectJson = Zend_JSON::encode($accountData);
//navnet på det modul, som posten skal oprettes for.
$moduleName = 'Konti';
</p><p>//sessionId er hentet fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opret',
</p>
<pre class="_fck_mw_lspace"> "element"=>$objectJson, "elementType"=>$modulnavn);

//Opret skal være POST-anmodning. $httpc->post(“$endpointUrl”, $params, sand); $respons = $httpc->currentResponse(); //afkode json encode-svaret fra serveren. $jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)

//håndter fejlsagen.
die('create failed:'.$jsonResponse['error']['errorMsg']);

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

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

//kode objektet i JSON-format for at kommunikere med serveren. $objectJson = Zend_JSON::encode($contactData); //navnet på det modul, som posten skal oprettes for. $moduleName = 'Kontakter';

//sessionId er hentet fra loginResult.
$params = array(“sessionName”=>$sessionId, “operation”=>'create',

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

//Opret skal være POST-anmodning. $httpc->post(“$endpointUrl”, $params, sand); $respons = $httpc->currentResponse(); //afkode json encode-svaret fra serveren. $jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)

//håndter fejlsagen.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$savedObject = $jsonResponse['resultat']; $id = $savedObject['id'];

</code></pre>

Opret Resultat

Hent

Hent en eksisterende post fra serveren.

URL-format

 <kode>Anmodningstype: GET

http://Simply_url/webservice.php?operation=retrieve
&session_name=[sessions-id]
&id=[objekt-id

</code>

Hent eksempel

For at hente et objekt ved hjælp af dets ID skal du bruge genfindingsoperationen. Du kan hente kontakten oprettet i oprettelseseksemplet.

 <code>//sessionId er hentet fra loginResult.
$params = "sessionName=$sessionId&operation=retrieve&id=$id";
//Hent skal være GET-anmodning.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operation var vellykket få tokenet fra svaret.

if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('retrieve failed:'.$jsonResponse['error']['errorMsg']);

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

Hent Resultat

Et kort, der repræsenterer indholdet af et CRM-entitetsbaseret objekt. Alle referencefelter er repræsenteret ved hjælp af Id -type. En nøgle kaldet ID af typen Id repræsenterer objektets unikke ID. Dette felt er til stede for ethvert objekt hentet fra databasen.

Opdatering

For at opdatere et hentet eller nyoprettet objekt kan du bruge opdateringshandlingen.

URL-format

 <kode>Anmodningstype: POST

http://Simply_url/webservice.php?operation=update
&sessionName=[sessions-id]
&element=[objekt]

</code>

Opdateringseksempel

Du kan tilføje et fornavn til kontakten.

 <code>//retrievedObject fra tidligere eksempel (Eksempel 1).
$retrievedObject['firstname'] = 'Prins';
//kode objektet i JSON-format for at kommunikere med serveren.
$objectJson = Zend_JSON::encode($retrievedObject);

//sessionId er hentet fra login-operationsresultatet.
$params = array("sessionName"=>$sessionId, "operation"=>'update',
"element"=>$objectJson);
//opdatering skal være en POST-anmodning.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret. if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('update failed:'.$jsonResponse['error']['errorMsg']);

//opdater resultatobjekt.
$updatedObject = $jsonResponse['resultat'];
</code>

Opdater Resultat

Et kort, der repræsenterer indholdet af et crmentity-baseret objekt. Alle referencefelter er repræsenteret ved hjælp af Id -type. En nøgle kaldet ID af typen Id repræsenterer objektets unikke ID. Dette felt er til stede for ethvert objekt hentet fra databasen.

Slet

Brug sletningsoperationen for at slette et objekt.

URL-format

 <kode>Anmodningstype: POST

http://Simply_url/webservice.php?operation=delete
&sessionName=[sessions-id]
&id=[objekt-id]
</code>

Slet eksempel

Sletningshandlingen har ikke et resultat. Succesflaget er nok til at finde ud af, om operationen var vellykket.

Forespørgsler

Giver ganske enkelt et simpelt forespørgselssprog til at hente data. Dette sprog minder ret meget om udvalgte forespørgsler i SQL. Der er begrænsninger: forespørgslerne arbejder på et enkelt modul, indlejrede forespørgsler understøttes ikke, og det understøtter ikke joins. Men dette er stadig en effektiv måde at få data fra Simply på.

Forespørgsel begrænser altid dens output til 100 poster. Klientapplikationen kan bruge grænseoperatøren til at få forskellige poster.

URL-format

 <kode>Anmodningstype: GET

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

&sessionName=[sessions-id]
&query=[forespørgselsstreng]
</code>

Eksempel på forespørgsel

Eksempel 1

 <kode>//forespørgsel for at vælge data fra serveren.
$query = "vælg * fra kontakter, hvor efternavn='Valiant';";
//urlencode til som den sendes over http.
$queryParam = urlencode($query);
//sessionId er hentet fra login-resultatet.
$params = "sessionName=$sessionId&operation=query&query=$queryParam";
//forespørgsel skal være GET-anmodning.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret. if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('forespørgsel mislykkedes:'.$jsonResponse['errorMsg']);

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

Eksempel 2

Angiv de kolonner, der skal hentes for hver post.

 <kode>//forespørgsel for at vælge data fra serveren.
$query = "vælg efternavn, fornavn, konto_id, tildelt_bruger_id fra kontakter hvor efternavn='Valiant';";
//urlencode til som den sendes over http.
$queryParam = urlencode($query);
//sessionId er hentet fra login-resultatet.
$params = "sessionName=$sessionId&operation=query&query=$queryParam";
//forespørgsel skal være GET-anmodning.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('forespørgsel mislykkedes:'.$jsonResponse['errorMsg']);

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

Dette vil returnere et array, der indeholder arrays, som repræsenterer felterne for hvert objekt, der matchede forespørgslen.

Forespørgselsresultat

QueryResult er en række SimplyObjects.

SimplyObject

Et kort, der repræsenterer indholdet af et crmentity-baseret objekt. Alle referencefelter er repræsenteret ved hjælp af Id -type. En nøgle kaldet ID af typen Id repræsenterer objektets unikke ID. Dette felt er til stede for ethvert objekt hentet fra databasen.

Forespørgselsformat

 <kode>vælg * | <column_list> | <count(*)>
fra <objekt> [hvor <betingelser>]
[bestil efter <column_list>] [grænse [<m>, ]<n>];

</code>

Kolonnelisten i orden efter klausul kan højst have to kolonnenavne.

Synkronisere

Sync returnerer et SyncResult-objekt, der indeholder detaljerne om ændringerne efter modifiedTime.

URL-format

 <kode>Anmodningstype: GET

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

&sessionName=[sessions-id]
&modifiedTime=[tidsstempel]
&elementType=[elementType]
</code>

elementType – Dette er en valgfri parameter. Hvis det er angivet, returneres kun ændringerne for det pågældende modul efter det givne tidspunkt. Ellers returneres ændringerne til alle brugertilgængelige moduler efter det givne tidspunkt.

TimeStamp – En lang repræsentation af antallet af sekunder siden Unix-epoken.

Eksempel 1

Opret en konto, og optag den i sync API.

 <code>//tid, hvorefter alle ændringer på serveren er nødvendige.
$stime = tid();
//Opret nogle data nu, så de fanges af sync api-svaret.
//Opret konto.
//udfyld detaljerne for Accounts.userId er hentet fra loginResult.
$accountData = array('accountname'=>'Simpelthen', 'assigned_user_id'=>$userId);
//kode objektet i JSON-format for at kommunikere med serveren. $objectJson = Zend_JSON::encode($accountData);
//navnet på det modul, som posten skal oprettes for.
$moduleName = 'Konti';

//sessionId er hentet fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opret',
"element"=>$objectJson, "elementType"=>$modulnavn);
//Opret skal være POST-anmodning.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$createResult = $jsonResponse['result'];

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

//sync skal være GET Request.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('forespørgsel mislykkedes:'.$jsonResponse['errorMsg']);

//Array af SimplyObjects
$retrievedObjects = $jsonResponse['result'];

</code>

Svaret indeholder den konto, der blev oprettet.

Eksempel 2

Opret en konto og en kontakt, brug kun sync API til Accounts modulet, kun ændringer til Accounts modulet returneres.

SyncResult

Et objekt, der repræsenterer svaret på en synkroniseringsoperation.

 <code>SyncResult{
updated:[Object] //Liste over objekter, der er oprettet eller ændret.
slettet:[Id] //Liste over *Id* over slettede objekter.
lastModifiedTime:Timstempel //tidspunkt for den seneste ændring. som kan bruges i det næste kald til Sync-api'et for at få alle de seneste ændringer, som klienten ikke har fået.
}
</code>

Logger ud

Log ud

Log ud fra webservicesessionen, hvilket efterlader webservicesessionen ugyldig til videre brug.

URL-format

 <kode>Anmodningstype: GET

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

&sessionName=[sessions-id]
</code>

Eksempel

 <code>//SessionId er den session, der skal afsluttes.
$params = "operation=logout&sessionName=$sessionId";

//logout skal være GET Request.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//afkode json encode-svaret fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);

//operation var vellykket få tokenet fra svaret.
if($jsonResponse['success']==falsk)
//håndter fejlsagen.
die('forespørgsel mislykkedes:'.$jsonResponse['errorMsg']);
//logout vellykket session afsluttet.
</code>

Udvidelse af Simply web-klienten ved hjælp af webservice

Forlæng session

Udvider den aktuelle Simply webklientsession til webtjenesten og returnerer et webservicesessions-id. Når du arbejder inde fra Simply-webklienten, kan brugeren genbruge den aktuelle godkendte session i stedet for at logge på Simply igen for at få adgang til webtjenesten.

Bemærk: Hvis brugeren forlænger en session, vil sessionen blive bundet sammen, så log ud fra den ene (webtjenesten eller webklienten) vil også logge brugeren ud af den anden. For at forlænge sessionen fungerer, skal cookies være aktiveret i klientbrowseren.

URL-format

 <kode>Anmodningstype: POST

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

</code>

Eksempel

 <kode>
</code>

Dette eksempel er skrevet i Javascript, da Extend Session kun er gyldig fra Simply webklienten.

Krav til at køre eksemplet

  • JQUERY bibliotek – for at udføre ajax http-anmodningen.
  • JSON-bibliotek – json2.js-fil tilgængelig med Simply på json.org.

Eksempel 1

 <kode>
//driftsparametre.
var params = "operation=extendsession";
//slutpunkt for tjenesterne.
var endPointUrl = "http://Simply_url/webservice.php";

//extendSession er post request, påkald jquery http post request.
$.post(endPointUrl, params, function(result){
//afkode json encode-svaret fra serveren.
var jsonResponse = json.parse(result);

//operation var vellykket få tokenet fra svaret.
if(jsonResponse['success']==falsk)
//håndter fejlsagen.
die('login mislykkedes:'+jsonResponse['error']['errorMsg']);

//login vellykket udtrække sessionId og userId fra LoginResult, så det kan bruges til yderligere opkald.
var sessionId = jsonResponse['result']['sessionName'];
var userId = jsonResponse['result']['userId'];
});
</code>

Opdateret den 06/03/2022

Var denne artikel til hjælp?

Relaterede Artikler