The Simply CRM Web Service Tutorial

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

  1. En installasjon av Simply with the web service;
  2. Php for å kjøre eksempelkoden;
  3. HTTP_Request2 som kan installeres ved å gjøre en pear install HTTP_Request2 ;
  4. 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>

Oppdatert på 06/03/2022

Var denne artikkelen til hjelp?

Relaterte Artikler