Gir ganske enkelt et enkelt, kraftig og sikkert applikasjonsprogrammeringsgrensesnitt (API) for å jobbe med enhetene som er lagret i. For å bruke dette dokumentet bør du ha grunnleggende kjennskap til programvareutvikling, webtjenester og Simply CRM .
Nettjenesten gir en enklere måte å integrere Simply med dine andre programvaresystemer.
API-anropsegenskaper
REST – API er REST-basert, noe som betyr at all kommunikasjon mellom klienten og serveren kan skje over HTTP i form av GET- eller POST-forespørsler.
JSON – JSON brukes til å kode svaret og forespørselen.
Forespørsler og svar – Din klientapplikasjon forbereder og sender inn en tjenesteforespørsel til API. API-en behandler forespørselen og returnerer et svar, og deretter håndterer klientapplikasjonen svaret.
Forpliktet automatisk – Hver operasjon som skriver til et Simply-objekt, blir forpliktet automatisk. Dette er analogt med AUTOCOMMIT-innstillingen i SQL.
API-svaret
Responsobjekt
Alle svar vil ha ett av følgende to formater.
Hvis forespørselen behandles vellykket:
<code>Svar{
suksess:Boolsk=true
result:Object //Operasjonsresultatobjektet
}
</code>
Hvis det oppstår en feil under behandling av forespørselen:
<code>Svar{
suksess:Boolsk=falsk
error:ErrorObject
}
</code>
Feilobjekt
<kode>ErrorObject{
errorCode:String //Stringrepresentasjon av feiltypen
errorMessage:String //Feilmelding fra api.
}
</code>
errorCode er en strengrepresentasjon av feiltypen.
Feilhåndtering
Svaret for enhver nettjenesteforespørsel er et JSON-objekt. Objektet har en feltsuksess som vil ha verdien sann hvis operasjonen var en suksess og falsk ellers. Hvis suksessen er usann, vil responsobjektet inneholde en feltfeil som vil inneholde JSON-objektet. Feilobjektet vil inneholde to felt errorType, en enkeltordsbeskrivelse av feilen og errorMsg, en streng som inneholder en beskrivelse av feilen.
Eksempelkoden er skrevet i Php og har to avhengigheter Laminas-biblioteket og Http_Request2.
Kravene for å kjøre eksempler gitt i opplæringen
- En installasjon av Simply with the web service;
- Php for å kjøre eksempelkoden;
- HTTP_Request2 som kan installeres ved å gjøre en
pear install HTTP_Request2
; - Laminas, som du må laste ned Laminas-rammeverket for .
Logger inn
API-en bruker ikke passordet for pålogging. I stedet gir Simply en unik tilgangsnøkkel for hver bruker. For å få brukernøkkelen, gå til Mine preferanser-panelet til en bestemt bruker. Der finner du feltet Access Key.
Viktig : Det kreves å angi IP-en i hviteliste-IP -feltet under Mine preferanser på brukerens profil i Simply CRM som brukes for å få tilgang til API.
Hver pålogging starter en klientøkt med serveren, autentiserer brukeren og returnerer en sessionId som vil bli brukt for all etterfølgende kommunikasjon med serveren.
Innlogging er en to-trinns prosess. I det første trinnet henter klienten utfordringstokenet fra serveren, som brukes sammen med brukerens tilgangsnøkkel for å logge på.
GetChallenge
Få et utfordringstoken fra serveren. Dette må være en GET-forespørsel.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=getchallenge
&brukernavn=[brukernavn]
</code>
GetChallenge eksempel
For å få utfordringstokenet må du kjøre følgende kode.
<?php
require_once 'HTTP/Request2.php';
$endpointUrl = 'https://tr.simply-crm.dk/webservice.php';
//brukernavn til brukeren som skal logges inn.
$userName="API";
prøv {
$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;
} annet {
echo 'Uventet HTTP-status: ' . $response->getStatus() . ''.
$response->getReasonPhrase();
}
}catch (HTTP_Request2_Exception $e) {
echo 'Feil:' . $e->getMessage();
}
?>
GetChallenge-resultat
Et objekt som representerer responsresultatet av en getchallenge-operasjon.
<code>GetChallengeResult{
token:String //Challenge token fra serveren.
serverTime:TimeStamp //Gjeldende servertid.
expireTime:TimeStamp //Tidspunktet da tokenet utløper.
}
</code>
Nå som du har utfordringstokenet, kan du fortsette med påloggingen. Tilgangsnøkkelfeltet i påloggingsoperasjonen er md5-sjekksummen for sammenkoblingen av utfordringstokenet og brukerens egen tilgangsnøkkel. Påloggingsoperasjonen, i motsetning til getchallenge, er en postforespørsel.
Logg Inn
Logg på serveren ved å bruke utfordringstokenet du fikk i getchallenge-operasjonen.
URL-format
<kode>Forespørselstype:POST
http://Simply_url/webservice.php?operation=login
&brukernavn=[brukernavn]
&accessKey=[tilgangsnøkkel]
</code>
For accessKey oppretter du en md5-streng etter å ha sammenkoblet brukertilgangsnøkkelen fra siden Mine preferanser og utfordringstokenet hentet fra getchallenge-resultatet.
Påloggingseksempel
Sesjons-IDen brukes til å identifisere gjeldende økt og vil være en felles parameter i alle påfølgende forespørsler.
Påloggingsresultat
Et objekt som representerer responsresultatet av en påloggingsoperasjon.
<kode>påloggingsresultat{
sessionId:String //Unik identifikator for økten
userId:String //Simply-IDen for den påloggede brukeren
version:String //Versjonen av webservices-api
SimplyVersion:String //Versjonen av Simply crm.
}
</code>
Få informasjon
API-en gir to operasjoner for å få informasjon om de tilgjengelige Simply-objektene.
Den første er listetyper, som gir en liste over tilgjengelige moduler. Denne listen inneholder kun moduler den påloggede brukeren har tilgang til.
Listetyper
List opp navnene på alle Simply-objektene som er tilgjengelige gjennom API.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=listtypes
&sessionName=[sesjons-ID]
</code>
Returnerer et kart som inneholder nøkkeltypene med verdien som en liste over Simply-objektnavnene.
Eksempel på listetyper
<code>//listtypes-forespørsel må være GET-forespørsel.
$httpc->get("$endpointUrl?sessionName=$sessionId&operation=listtypes");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('listetyper mislyktes:'.$jsonResponse['error']['errorMsg']);
//Få listen over alle modulene som er tilgjengelige.
$modules = $jsonResponse['result']['types'];
</code>
Den andre operasjonen er beskrive og den gir detaljert typeinformasjon om et Simply-objekt.
Beskrive
Få typeinformasjon om et gitt Simply-objekt.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=describe
&sessionName=[sesjons-ID]
&elementType=[elementType]
</code>
Beskriv eksempel
<kode>//f.eks
//Simply Objektnavn som må beskrives eller hvis informasjon etterspørres.
$moduleName = 'Kontakter';
//bruk sessionId opprettet på tidspunktet for pålogging.
$params = "sessionName=$sessionId&operation=describe&elementType=$moduleName";
//describe-forespørsel må være GET-forespørsel.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('describe object failed:'.$jsonResponse['error']['errorMsg']);
//få beskriv resultatobjekt. $description = $jsonResponse['resultat'];
</code>
Beskrivelsen består av følgende felt:
Hvert element i feltmatrisen beskriver et bestemt felt i objektet.
Navn | Beskrivelse |
Navn | Navnet på feltet, slik det brukes internt av Simply. |
Merkelapp | Etiketten som brukes for å vise feltnavnet. |
Påbudt, bindende | En boolsk verdi som spesifiserer om feltet er obligatorisk. Obligatoriske felter må oppgis når du oppretter et nytt objekt. |
Type | Et kart som beskriver typeinformasjonen for feltet. |
Misligholde | Standardverdien for feltet. |
Nillbar | En boolsk verdi som spesifiserer om feltet kan settes til null. |
Redigerbar | En boolsk verdi som spesifiserer om feltet kan endres. |
Typefeltet er spesielt viktig ettersom det beskriver hvilken type felt det er. Dette er et kart som vil inneholde minst ett element kalt navn, som spesifiserer navnet på typen.
Navn | Beskrivelse |
String | Et tekstfelt på én linje. |
Tekst | Et tekstfelt med flere linjer. |
Heltall | Et tekstfelt med flere linjer. |
Dobbelt | Et felt for for flyttall. |
boolsk | Et boolsk felt, som kan ha verdiene true eller false. |
Tid | En streng i formatet tt:mm, som er basert på brukerens tidsformatinnstillinger. |
Dato | En streng som representerer en dato, typekartet vil inneholde et annet element kalt format som er formatet som verdien av dette feltet forventes i, basert på brukerens innstillinger datoformat. |
Dato tid | En streng som representerer dato og klokkeslett, som er basert på brukerens innstillinger for datoformat. |
Autogenerert | Feltene som verdiene genereres automatisk for av Simply. Dette er vanligvis et objekts ID-felt. |
Referanse | Et felt som viser en relasjon til et annet objekt. Typekartet vil inneholde et annet element kalt refersTo, som er en matrise som inneholder modulene som feltet kan peke til. |
Plukkliste | Et felt som kan holde en av en liste med verdier. Kartet vil inneholde to elementer, picklistValues, som er en liste over mulige verdier, og defaultValue, som er standardverdien for valglisten. |
Flervalgsliste | Et valglistefelt der flere verdier kan velges. |
Telefon | Et felt som brukes til å lagre telefonnumre. |
E-post | Et felt som brukes til å lagre e-post-IDer. |
URL | Et felt som brukes til å lagre URL-er. |
Skype | Et felt som brukes til å lagre Skype-IDer eller telefonnumre. |
Passord | Et felt som brukes til å lagre passord. |
Eieren | Et felt som definerer eieren av feltet, som kan være en gruppe eller en individuell bruker. |
Beskriv resultatet
<kode>Beskriv Resultat{
label:String //label for modulen.
name:String //navn på modulen, som en gitt på forespørsel.
createable:Boolean //true hvis den påloggede brukeren tillates opprette poster av typen og false ellers.
updateable:Boolean //true hvis den påloggede brukeren har tillatelse til å oppdatere poster av type og falsk ellers.
deleteable:Boolean //true hvis den påloggede brukeren har tillatelse til å slette poster av type og false ellers.
retrieveable:Boolean //true hvis den påloggede brukeren tillates gjenfinnbare poster av type og usann ellers.
fields:Array //array av typen Felt.
}
</code>
Felt
Felttype
<code>Felttype{
<pre class="_fck_mw_lspace"> navn:Type //felttype
refersTo:Array //en matrise med ganske enkelt objektnavn på typer poster som feltet kan referere til, det er bare definert for referansefelttype.
picklistValues:Array //en matrise av typen PicklistValue type. det er bare definert for valgliste Fieldtype.
defaultValue:String //en verdi av den standard valgte plukklisteverdien, den er bare definert for valglistefelttype.
format:String //datoformat der datotypefeltet må fylles ut med, f.eks. mm-dd-åååå. den er bare definert for datofelttype.
}
</code>
Valglistefeltverdien må oppgis eksplisitt.
<code>Picklist Value{
name:String //navn på valglistealternativet.
value:String //verdi for valglistealternativet.
}
</code>
Et eksempel på et describeResult-objekt
//$beskrivelse fra eksempelet ovenfor. For eksempel kan print_r($description)
vise:
<kode>Array
(
[label] => Kontakter
[navn] => Kontakter
[opprettbar] => 1
[oppdaterbar] => 1
[slettbar] => 1
[hentbar] => 1
[fields] => Array
(
[0] => Array
(
[navn] => konto-id
[label] => Kontonavn
[obligatorisk] =>
[type] => Array
(
[navn] => referanse,
[refersTo] => Array
(
"Kontoer"
)
)
[standard] =>
[nillable] => 1
[redigerbar] => 1
)
)
)
</code>
CRUD-operasjoner
API-en gir operasjoner for å opprette, hente, oppdatere og slette CRM-enhetsobjekter.
Skape
Opprett en ny oppføring på serveren.
URL-format
<kode>Forespørselstype: POST
http://Simply_url/webservice.php?operation=create
&sessionName=[sesjons-ID]
&element=[objekt]
&elementType=[objekttype]
</code>
Lag et eksempel
Eksempel 1
Du kan opprette en kontakt ved å bruke opprettingsoperasjonen. I dette tilfellet er de obligatoriske feltene etternavn og tildelt_bruker-id.
$savedObject
er et kart som inneholder feltene til det nye objektet, inkludert et ID-felt som kan brukes til å referere til objektet.
Eksempel 2
Opprett en kontakt og tilknytt den til en eksisterende konto.
<kode>//f.eks. 2
//Opprett en kontakt og tilknytt en eksisterende konto.
$queryResult = doQuery("velg kontonavn,id fra kontoer hvor kontonavn='Simply';");
$accountId = $queryResult[0]['id'];
//Hvis du vil ha mer informasjon om hvordan en spørringsforespørsel utføres, se eksemplet på spørringsoperasjonen.
//fyll inn detaljene for contacts.userId er hentet fra loginResult.
$contactData = array('lastname'=>'Valiant', 'assigned_user_id'=>$userId,'account_id'=>$accountId);
//kode objektet i JSON-format for å kommunisere med serveren.
$objectJson = Zend_JSON::encode($contactData);
//navnet på modulen som oppføringen må opprettes for.
$moduleName = 'Kontakter';
//sessionId hentes fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opprett',
"element"=>$objectJson, "elementType"=>$modulnavn);
//Opprett må være POST-forespørsel.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndter feilsaken.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$savedObject = $jsonResponse['resultat'];
$id = $savedObject['id'];
</code>
Eksempel 3
Opprett en kontakt og tilknytt den til en ny konto.
<kode>//f.eks. 3
<p>//Opprett en kontakt og tilknytt en ny konto.
</p><p>//fyll inn detaljene for kontoene. bruker-ID hentes fra loginResult.
$accountData = array('accountname'=>'Simpelthen', 'assigned_user_id'=>$userId);
//kode objektet i JSON-format for å kommunisere med serveren.
$objectJson = Zend_JSON::encode($accountData);
//navnet på modulen som oppføringen må opprettes for.
$moduleName = 'Kontoer';
</p><p>//sessionId hentes fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opprett',
</p>
<pre class="_fck_mw_lspace"> "element"=>$objectJson, "elementType"=>$modulnavn);
//Opprett må være POST-forespørsel. $httpc->post(“$endpointUrl”, $params, true); $respons = $httpc->currentResponse(); //dekode json-koderesponsen fra serveren. $jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndter feilsaken.
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 å kommunisere med serveren. $objectJson = Zend_JSON::encode($contactData); //navnet på modulen som oppføringen må opprettes for. $moduleName = 'Kontakter';
//sessionId hentes fra loginResult.
$params = array(“sessionName”=>$sessionId, “operation”=>'opprett',
"element"=>$objectJson, "elementType"=>$modulnavn);
//Opprett må være POST-forespørsel. $httpc->post(“$endpointUrl”, $params, true); $respons = $httpc->currentResponse(); //dekode json-koderesponsen fra serveren. $jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndter feilsaken.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$savedObject = $jsonResponse['resultat']; $id = $savedObject['id'];
</code></pre>
Opprett resultat
Hente
Hent en eksisterende oppføring fra serveren.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=retrieve
&session_name=[sesjons-ID]
&id=[objekt-ID
</code>
Hent eksempel
For å hente et objekt ved å bruke dets ID, bruk gjenopprettingsoperasjonen. Du kan hente kontakten som er opprettet i opprettingseksemplet.
<code>//sessionId hentes fra loginResult.
$params = "sessionName=$sessionId&operation=retrieve&id=$id";
//Hent må være GET-forespørsel.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('retrieve failed:'.$jsonResponse['error']['errorMsg']);
$retrievedObject = $jsonResponse['resultat'];
</code>
Hent Resultat
Et kart som representerer innholdet i et CRM-enhetsbasert objekt. Alle referansefelt er representert med ID- type. En nøkkel kalt ID av type Id representerer objektets unike ID. Dette feltet er til stede for ethvert objekt hentet fra databasen.
Oppdater
For å oppdatere et hentet eller nyopprettet objekt kan du bruke oppdateringsoperasjonen.
URL-format
<kode>Forespørselstype: POST
http://Simply_url/webservice.php?operation=update
&sessionName=[sesjons-ID]
&element=[objekt]
</code>
Oppdateringseksempel
Du kan legge til et fornavn til kontakten.
<code>//retrievedObject fra forrige eksempel (eksempel 1).
$retrievedObject['firstname'] = 'Prins';
//kode objektet i JSON-format for å kommunisere med serveren.
$objectJson = Zend_JSON::encode($retrievedObject);
//sessionId hentes fra resultatet av påloggingsoperasjonen.
$params = array("sessionName"=>$sessionId, "operation"=>'oppdatering',
"element"=>$objectJson);
//oppdatering må være en POST-forespørsel.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret. if($jsonResponse['success']==false)
//håndter feilsaken.
die('oppdatering mislyktes:'.$jsonResponse['error']['errorMsg']);
//oppdater resultatobjekt.
$updatedObject = $jsonResponse['resultat'];
</code>
Oppdater Resultat
Et kart som representerer innholdet i et crmentity-basert objekt. Alle referansefelt er representert med ID- type. En nøkkel kalt ID av type Id representerer objektets unike ID. Dette feltet er til stede for ethvert objekt hentet fra databasen.
Slett
For å slette et objekt, bruk sletteoperasjonen.
URL-format
<kode>Forespørselstype: POST
http://Simply_url/webservice.php?operation=delete
&sessionName=[sesjons-ID]
&id=[objekt-ID]
</code>
Slett eksempel
Sletteoperasjonen gir ikke resultat. Suksessflagget er nok til å finne ut om operasjonen var vellykket.
Forespørsler
Gir ganske enkelt et enkelt spørringsspråk for å hente data. Dette språket er ganske likt utvalgte spørringer i SQL. Det er begrensninger: spørringene fungerer på en enkelt modul, innebygde spørringer støttes ikke, og den støtter ikke sammenføyninger. Men dette er fortsatt en kraftig måte å hente data fra Simply.
Spørringen begrenser alltid utdata til 100 poster. Klientapplikasjonen kan bruke grenseoperatøren for å få forskjellige poster.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=query
&sessionName=[sesjons-ID]
&query=[spørrestreng]
</code>
Eksempel på spørring
Eksempel 1
<code>//query for å velge data fra serveren.
$query = "velg * fra kontakter der etternavn='Valiant';";
//urlencode til som den sendes over http.
$queryParam = urlencode($query);
//sessionId hentes fra påloggingsresultatet.
$params = "sessionName=$sessionId&operation=query&query=$queryParam";
//query må være GET-forespørsel.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret. if($jsonResponse['success']==false)
//håndter feilsaken.
die('query failed:'.$jsonResponse['errorMsg']);
//Array of SimplyObjects
$retrievedObjects = $jsonResponse['result'];
</code>
Eksempel 2
Spesifiser kolonnene som skal hentes for hver post.
<code>//query for å velge data fra serveren.
$query = "velg etternavn, fornavn, konto_id, tildelt_bruker_id fra kontakter der etternavn='Valiant';";
//urlencode til som den sendes over http.
$queryParam = urlencode($query);
//sessionId hentes fra påloggingsresultatet.
$params = "sessionName=$sessionId&operation=query&query=$queryParam";
//query må være GET-forespørsel.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('query failed:'.$jsonResponse['errorMsg']);
//Array of SimplyObjects
$retrievedObjects = $jsonResponse['result'];
</code>
Dette vil returnere en matrise som inneholder matriser som representerer feltene til hvert objekt som samsvarte med spørringen.
QueryResult
QueryResult er en rekke SimplyObjects.
SimplyObject
Et kart som representerer innholdet i et crmentity-basert objekt. Alle referansefelt er representert med ID- type. En nøkkel kalt ID av type Id representerer objektets unike ID. Dette feltet er til stede for ethvert objekt hentet fra databasen.
Spørringsformat
<kode>velg * | <column_list> | <count(*)>
fra <objekt> [hvor <betingelser>]
[bestill etter <kolonneliste>] [grense [<m>, ]<n>];
</code>
Kolonnelisten i rekkefølge etter klausul kan ha maksimalt to kolonnenavn.
Synkroniser
Sync vil returnere et SyncResult-objekt som inneholder detaljene om endringene etter modifiedTime.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=sync
&sessionName=[sesjons-ID]
&modifiedTime=[tidsstempel]
&elementType=[elementType]
</code>
elementType – Dette er en valgfri parameter. Hvis spesifisert, returneres bare endringene for den modulen etter den gitte tiden. Ellers returneres endringene til alle brukertilgjengelige moduler etter gitt tidspunkt.
TimeStamp – En lang representasjon av antall sekunder siden Unix-epoken.
Eksempel 1
Opprett en konto og registrer den i sync API.
<kode>//tid etter hvilken alle endringene på serveren er nødvendige.
$stime = tid();
//Opprett noen data nå slik at de fanges opp av synkroniserings-API-responsen.
//Opprett konto.
//fyll inn detaljene for Accounts.userId er hentet fra loginResult.
$accountData = array('accountname'=>'Simpelthen', 'assigned_user_id'=>$userId);
//kode objektet i JSON-format for å kommunisere med serveren. $objectJson = Zend_JSON::encode($accountData);
//navnet på modulen som oppføringen må opprettes for.
$moduleName = 'Kontoer';
//sessionId hentes fra loginResult.
$params = array("sessionName"=>$sessionId, "operation"=>'opprett',
"element"=>$objectJson, "elementType"=>$modulnavn);
//Opprett må være POST-forespørsel.
$httpc->post("$endpointUrl", $params, true);
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('create failed:'.$jsonResponse['error']['errorMsg']);
$createResult = $jsonResponse['resultat'];
$params = "operation=sync&modifiedTime=$stime&sessionName=$sessionId";
//sync må være GET Request.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('query failed:'.$jsonResponse['errorMsg']);
//Array of SimplyObjects
$retrievedObjects = $jsonResponse['result'];
</code>
Svaret inneholder kontoen som ble opprettet.
Eksempel 2
Opprett en konto og en kontakt, bruk kun synkroniserings-API for kontomodulen, kun endringer i kontomodulen returneres.
SyncResult
Et objekt som representerer responsen til en synkroniseringsoperasjon.
<code>SyncResult{
oppdatert:[Objekt] //Liste over objekter opprettet eller endret.
slettet:[Id] //Liste over *Id* over objekter som er slettet.
lastModifiedTime:Timstempel //tidspunkt for siste endring. som kan brukes i neste kall til Sync-api for å få alle de siste endringene som klienten ikke har fått.
}
</code>
Logger ut
Logg ut
Logg ut fra nettjenesteøkten, noe som gjør nettjenesteøkten ugyldig for videre bruk.
URL-format
<kode>Forespørselstype: GET
http://Simply_url/webservice.php?operation=logout
&sessionName=[sesjons-ID]
</code>
Eksempel
<code>//SessionId er økten som skal avsluttes.
$params = "operation=logout&sessionName=$sessionId";
//utlogging må være GET-forespørsel.
$httpc->get("$endpointUrl?$params");
$respons = $httpc->currentResponse();
//dekode json-koderesponsen fra serveren.
$jsonResponse = Zend_JSON::decode($response['body']);
//operasjonen var vellykket få tokenet fra svaret.
if($jsonResponse['success']==false)
//håndtere feilsaken.
die('query failed:'.$jsonResponse['errorMsg']);
//utlogging vellykket økt avsluttet.
</code>
Utvide Simply web-klienten ved å bruke nettjeneste
Forleng økten
Utvider gjeldende Simply web-klientøkt til nettjenesten og returnerer en webtjenestesesjons-ID. Når du arbeider fra Simply-webklienten, kan brukeren bruke den gjeldende autentiserte økten på nytt i stedet for å logge på Simply igjen for å få tilgang til nettjenesten.
Merk: Hvis brukeren forlenger en økt, vil økten bli knyttet sammen, så utlogging fra den ene (netttjenesten eller nettklienten) vil logge brukeren ut av den andre også. For at utvidelsesoperasjonen skal fungere, må informasjonskapsler være aktivert i klientnettleseren.
URL-format
<kode>Forespørselstype: POST
http://Simply_url/webservice.php?operation=extendsession
</code>
Eksempel
<kode>
</code>
Dette eksemplet er skrevet i Javascript, ettersom utvidelsen kun er gyldig fra Simply-webklienten.
Krav for å kjøre eksemplet
- JQUERY-biblioteket – for å utføre ajax http-forespørselen.
- JSON-bibliotek – json2.js-fil tilgjengelig med Simply på json.org.
Eksempel 1
<kode>
//operasjonsparametere.
var params = "operasjon=utvidelse";
//endepunktet for tjenestene.
var endPointUrl = "http://Simply_url/webservice.php";
//extendSession er postforespørsel, påkall jquery http postforespørsel.
$.post(endPointUrl, params, function(result){
//dekode json-koderesponsen fra serveren.
var jsonResponse = json.parse(result);
//operasjonen var vellykket få tokenet fra svaret.
if(jsonResponse['success']==false)
//håndter feilsaken.
die('login mislyktes:'+jsonResponse['error']['errorMsg']);
//login vellykket trekke ut sessionId og userId fra LoginResult slik at den kan brukes til videre anrop.
var sessionId = jsonResponse['result']['sessionName'];
var userId = jsonResponse['result']['userId'];
});
</code>