El tutorial del servicio web Simply CRM

Simplemente proporciona una interfaz de programación de aplicaciones (API) simple, potente y segura para trabajar con las entidades almacenadas en su interior. Para utilizar este documento, debe estar familiarizado con el desarrollo de software, los servicios web y Simply CRM .

El servicio web proporciona una forma más sencilla de integrar Simply con sus otros sistemas de software.

Las características de la llamada a la API

REST: la API está basada en REST, lo que significa que toda la comunicación entre el cliente y el servidor puede realizarse a través de HTTP en forma de solicitudes GET o POST.

JSON: JSON se utiliza para codificar la respuesta y la solicitud.

Solicitudes y respuestas: su aplicación cliente prepara y envía una solicitud de servicio a la API. La API procesa la solicitud y devuelve una respuesta, y luego la aplicación cliente maneja la respuesta.

Confirmado automáticamente: cada operación que escribe en un objeto Simply se confirma automáticamente. Esto es análogo a la configuración de AUTOCOMMIT en SQL.

La respuesta de la API

Objeto de respuesta

Todas las respuestas tendrán uno de los dos formatos siguientes.

Si la solicitud se procesa correctamente:

 <code> Respuesta { 
éxito: booleano = verdadero
result: Object // El objeto Operation Result
}
</code>

Si ocurre una falla al procesar la solicitud:

 <code> Responder { 
éxito: booleano = falso
error: ErrorObject
}
</code>

Objeto de error

 <code> ErrorObject { 
errorCode: String // Representación en cadena del tipo de error
errorMessage: String // Mensaje de error de la api.
}
</code>

errorCode es una representación de cadena del tipo de error.

Manejo de errores

La respuesta para cualquier solicitud de servicio web es un objeto JSON. El objeto tiene un campo exitoso que tendrá el valor verdadero si la operación fue exitosa y falso en caso contrario. Si el éxito es falso, el objeto de respuesta contendrá un error de campo que contendrá el objeto JSON. El objeto de error contendrá dos campos errorType, una descripción del error de una sola palabra y errorMsg, una cadena que contiene una descripción del error.

El código de ejemplo está escrito en Php y tiene dos dependencias: la biblioteca Zend JSON y Http_Client.

Los requisitos para ejecutar ejemplos dados en el tutorial.

  1. Una instalación de Simply con el servicio web;
  2. Php para ejecutar el código de ejemplo;
  3. HTTP_Client que se puede instalar haciendo una pear install HTTP_Client ;
  4. Zend JSON, para lo cual deberá descargar el marco zend mínimo .

Iniciando sesión

La API no utiliza la contraseña para iniciar sesión. En cambio, Simply proporciona una clave de acceso única para cada usuario. Para obtener la clave de usuario, vaya al panel Mis preferencias de un usuario específico. Allí, encontrará el campo Clave de acceso.

Cada inicio de sesión inicia una sesión de cliente con el servidor, autentica al usuario y devuelve un sessionId que se utilizará para todas las comunicaciones posteriores con el servidor.

Iniciar sesión es un proceso de dos pasos. En el primer paso, el cliente obtiene el token de desafío del servidor, que se utiliza junto con la clave de acceso del usuario para iniciar sesión.

GetChallenge

Obtén una ficha de desafío del servidor. Esta debe ser una solicitud GET.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

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

& username = [nombre de usuario]
</code>

Ejemplo de GetChallenge

Para obtener el token de desafío, debe ejecutar el siguiente código.

 <code> // por ejemplo, // ruta URL a Simply / webservice.php como http: //Simply_url/webservice.php 
$ endpointUrl = "http: //localhost/ws/webservice.php";
// nombre de usuario del usuario que va a iniciar sesión.
$ userName = "admin";

$ httpc = nuevo HTTP_CLIENT ();
// La solicitud getchallenge debe ser una solicitud GET.
$ httpc-> get ("$ endpointUrl? operation = getchallenge & username = $ userName"); $ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// verifica si la operación solicitada fue exitosa o no.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('error al obtener el desafío:'. $ jsonResponse ['error'] ['errorMsg']);

// la operación fue exitosa obtener el token de la respuesta. $ ChallengeToken = $ jsonResponse ['resultado'] ['token'];
</code>

Resultado de GetChallenge

Objeto que representa el resultado de la respuesta de una operación getchallenge.

 <code> GetChallengeResult { 
token: String // Token de desafío del servidor.
serverTime: TimeStamp // La hora actual del servidor.
expireTime: TimeStamp // La hora a la que expira el token.
}
</code>

Ahora que tiene el token de desafío, puede continuar con el inicio de sesión. El campo de clave de acceso en la operación de inicio de sesión es la suma de comprobación md5 de la concatenación del token de desafío y la clave de acceso del usuario. La operación de inicio de sesión, a diferencia de getchallenge, es una solicitud de publicación.

Iniciar sesión

Inicie sesión en el servidor utilizando el token de desafío obtenido en la operación getchallenge.

Formato de URL

 <código> Tipo de solicitud: POST 
http: //Simply_url/webservice.php? operation = login

& username = [nombre de usuario]
& accessKey = [accessKey]
</code>

Para accessKey, cree una cadena md5 después de concatenar la clave de acceso del usuario de la página My Preference y el token de desafío obtenido del resultado de getchallenge.

Ejemplo de inicio de sesión

 <código> // p. ej. 
// clave de acceso del usuario admin, que se encuentra en mi página de preferencias.
$ userAccessKey = 'dsf923rksdf3';

// crear una cadena md5 que concatene la clave de acceso del usuario desde mi página de preferencias
// y el token de desafío obtenido al obtener el resultado del desafío.
$ generateKey = md5 ($ challengeToken. $ userAccessKey);
// la solicitud de inicio de sesión debe ser una solicitud POST.
$ httpc-> publicación ("$ endpointUrl",
array ('operation' => 'login', 'username' => $ userName,
'clave de acceso' => $ clave generada), verdadero);
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('error de inicio de sesión:'. $ jsonResponse ['error'] ['errorMsg']);

// iniciar sesión correctamente, extraer sessionId y userId de LoginResult para poder utilizarlo para más llamadas.
$ sessionId = $ jsonResponse ['resultado'] ['sessionName'];
$ userId = $ jsonResponse ['resultado'] ['userId'];

</code>

El ID de sesión se utiliza para identificar la sesión actual y será un parámetro común en todas las solicitudes posteriores.

Resultado de inicio de sesión

Objeto que representa el resultado de respuesta de una operación de inicio de sesión.

Consiguiendo información

La API proporciona dos operaciones para obtener información sobre los objetos Simply disponibles.

El primero es listtypes, que proporciona una lista de módulos disponibles. Esta lista solo contiene los módulos a los que tiene acceso el usuario que ha iniciado sesión.

Tipos de lista

Enumere los nombres de todos los objetos Simply disponibles a través de la API.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

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

& sessionName = [id de sesión]
</code>

Devuelve un mapa que contiene la clave 'tipos' con el valor de una lista de los nombres de los objetos de Simply.

Ejemplo de tipos de lista

 <code> // La solicitud de tipos de lista debe ser una solicitud GET. 
$ httpc-> get ("$ endpointUrl? sessionName = $ sessionId & operation = listtypes");
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('tipos de lista fallaron:'. $ jsonResponse ['error'] ['errorMsg']);
// Obtener la lista de todos los módulos accesibles.
$ módulos = $ jsonResponse ['resultado'] ['tipos'];
</code>

La segunda operación es describe y proporciona información de tipo detallada sobre un objeto Simply.

Describir

Obtiene la información de tipo sobre un objeto Simply dado.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

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

& sessionName = [id de sesión]
& elementType = [elementType]
</code>

Describe un ejemplo

 <código> // p. ej. 
// Simplemente Nombre del objeto que debe describirse o cuya información se solicita.
$ moduleName = 'Contactos';

// use sessionId creado en el momento del inicio de sesión.
$ params = "sessionName = $ sessionId & operation = describe & elementType = $ moduleName";
// la solicitud de descripción debe ser solicitud GET.
$ httpc-> get ("$ endpointUrl? $ params");
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('describe el objeto fallido:'. $ jsonResponse ['error'] ['errorMsg']);
// obtener describe el objeto de resultado. $ descripción = $ jsonResponse ['resultado'];

</code>

La descripción consta de los siguientes campos:

Nombre Descripción
Etiqueta La etiqueta utilizada para el nombre del módulo.
Nombre El nombre del módulo.
Creable Un valor booleano que especifica si se puede crear el objeto.
Actualizable Un valor booleano que especifica si el objeto se puede actualizar.
Eliminable Un valor booleano que especifica si el objeto se puede eliminar.
Recuperable Un valor booleano que especifica si el objeto se puede recuperar.
Campos Una matriz que contiene los nombres de los campos y su tipo de información.

Cada elemento de la matriz de campos describe un campo particular del objeto.

El campo de tipo es particularmente importante ya que describe qué tipo de campo es. Este es un mapa que contendrá al menos un elemento llamado nombre, que especifica el nombre del tipo.

Nombre Descripción
Cuerda Un campo de texto de una línea.
Texto Un campo de texto de varias líneas.
Entero Un campo de texto de varias líneas.
Doble Un campo para números de coma flotante.
Booleano Un campo booleano, que puede tener los valores verdadero o falso.
Hora Una cadena con el formato hh: mm, que se basa en la configuración del formato de hora del usuario.
Fecha Una cadena que representa una fecha, el tipo de mapa contendrá otro elemento llamado formato, que es el formato en el que se espera el valor de este campo, basado en el formato de fecha de configuración del usuario.
Fecha y hora Una cadena que representa la fecha y la hora, que se basa en la configuración del formato de fecha del usuario.
Auto generado Los campos para los que los valores son generados automáticamente por Simply. Suele ser el campo de identificación de un objeto.
Referencia Un campo que muestra una relación con otro objeto. El mapa de tipos contendrá otro elemento llamado referTo, que es una matriz que contiene los módulos a los que puede apuntar el campo.
Lista de selección Un campo que puede contener uno de una lista de valores. El mapa contendrá dos elementos, picklistValues, que es una lista de valores posibles, y defaultValue, que es el valor predeterminado para la lista de selección.
Lista múltiple Un campo de lista de selección donde se pueden seleccionar varios valores.
Teléfono Un campo utilizado para almacenar números de teléfono.
Email Un campo utilizado para almacenar ID de correo electrónico.
URL Un campo que se usa para almacenar URL.
Skype Un campo que se utiliza para almacenar ID de Skype o números de teléfono.
Contraseña Un campo utilizado para almacenar contraseñas.
Propietario Un campo que define al propietario del campo, que puede ser un grupo o un usuario individual.

Describe el resultado

 <code> DescribeResult { 
label: String // etiqueta del módulo.
name: String // nombre del módulo, como uno proporcionado en la solicitud.
createable: Boolean // verdadero si el usuario que ha iniciado sesión tiene permitido crear registros de tipo y falso en caso contrario.
updateable: Boolean // true si el usuario que ha iniciado sesión puede actualizar los registros de tipo y false en caso contrario.
deleteable: booleano // verdadero si el usuario que ha iniciado sesión puede eliminar registros de tipo y falso en caso contrario.
retrieveable: Boolean // verdadero si el usuario que inició sesión tiene permisos recuperables de tipo y falso en caso contrario.
fields: Array // matriz de tipo Field.
}
</code>

Campo

 <code> Campo { 

<pre class = "_ fck_mw_lspace"> name: String // nombre del campo.


label: String // etiqueta del campo.
obligatorio: booleano // verdadero si se debe proporcionar un valor al realizar una solicitud de creación y falso en caso contrario.
type: FieldType // una instancia de FieldType.
default: anyType // el valor predeterminado para el campo.
nillable: Boolean // true si null puede proporcionar un valor para el campo y false en caso contrario.
editable: Boolean // true si se puede proporcionar un valor al campo durante la operación de creación o actualización.
}
</code>

Tipo de campo

Error 400 (Bad Request)!!1

400. That’s an error.

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

Ejemplo 3

Crea un contacto y asócialo con una nueva cuenta.

 <código> // por ejemplo, 3 
<p> // Cree un contacto y asócielo con una nueva cuenta.
</p> <p> // completa los detalles de las Cuentas. userId se obtiene de loginResult.
$ accountData = array ('nombre de cuenta' => 'Simplemente', 'ID_usuario_asignado' => $ ID_usuario);
// codifica el objeto en formato JSON para comunicarse con el servidor.
$ objectJson = Zend_JSON :: encode ($ accountData);
// nombre del módulo para el que se debe crear la entrada.
$ moduleName = 'Cuentas';
</p> <p> // sessionId se obtiene de loginResult.
$ params = array ("sessionName" => $ sessionId, "operación" => 'crear',
</p>
<pre class = "_ fck_mw_lspace"> "element" => $ objectJson, "elementType" => $ moduleName);

// Crear debe ser solicitud POST. $ httpc-> publicación ("$ endpointUrl", $ params, verdadero); $ respuesta = $ httpc-> currentResponse (); // decodifica la respuesta de codificación json del servidor. $ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)

// manejar el caso de falla.
die ('error de creación:'. $ jsonResponse ['error'] ['errorMsg']);

$ cuenta = $ jsonResponse ['resultado']; $ accountId = $ cuenta ['id'];

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

// codifica el objeto en formato JSON para comunicarse con el servidor. $ objectJson = Zend_JSON :: encode ($ contactData); // nombre del módulo para el que se debe crear la entrada. $ moduleName = 'Contactos';

// sessionId se obtiene de loginResult.
$ params = array ("sessionName" => $ sessionId, "operación" => 'crear',

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

// Crear debe ser solicitud POST. $ httpc-> publicación ("$ endpointUrl", $ params, verdadero); $ respuesta = $ httpc-> currentResponse (); // decodifica la respuesta de codificación json del servidor. $ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)

// manejar el caso de falla.
die ('error de creación:'. $ jsonResponse ['error'] ['errorMsg']);
$ SavedObject = $ jsonResponse ['resultado']; $ id = $ SavedObject ['id'];

</code> </pre>

CreateResult

Un mapa que representa el contenido de un objeto basado en una entidad CRM. Todos los campos de referencia se representan mediante el tipo de ID . Una clave denominada ID de tipo Id representa la ID única del objeto. Este campo está presente para cualquier objeto obtenido de la base de datos.

Recuperar

Recupere una entrada existente del servidor.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

http: //Simply_url/webservice.php? operation = retrieve
& session_name = [id de sesión]
& id = [ID de objeto

</code>

Recuperar ejemplo

Para recuperar un objeto usando su ID, use la operación de recuperación. Puede recuperar el contacto creado en el ejemplo de creación.

 <code> // sessionId se obtiene de loginResult. 
$ params = "sessionName = $ sessionId & operation = retrieve & id = $ id";
// Recuperar debe ser Solicitud GET.
$ httpc-> get ("$ endpointUrl? $ params");
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);
// la operación fue exitosa obtener el token de la respuesta.

if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('recuperación fallida:'. $ jsonResponse ['error'] ['errorMsg']);

$ retrivedObject = $ jsonResponse ['resultado'];
</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.

Ejemplo 2

Especifique las columnas que se buscarán para cada registro.

 <code> // consulta para seleccionar datos del servidor. 
$ query = "seleccione apellido, nombre, id_cuenta, id_usuario_asignado de Contactos donde apellido = 'Valiente';";
// urlencode a como se envía a través de http.
$ queryParam = urlencode ($ consulta);
// sessionId se obtiene del resultado de inicio de sesión.
$ params = "sessionName = $ sessionId & operation = query & query = $ queryParam";
// la consulta debe ser GET Request.
$ httpc-> get ("$ endpointUrl? $ params");
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('consulta fallida:'. $ jsonResponse ['errorMsg']);

// Matriz de SimplyObjects
$ retrivedObjects = $ jsonResponse ['resultado'];
</code>

Esto devolverá una matriz que contiene matrices que representan los campos de cada objeto que coincidió con la consulta.

QueryResult

QueryResult es una matriz de SimplyObjects.

SimplyObject

Un mapa que representa el contenido de un objeto basado en crmentity. Todos los campos de referencia se representan mediante el tipo de Id . Una clave denominada ID de tipo Id representa la ID única del objeto. Este campo está presente para cualquier objeto obtenido de la base de datos.

Formato de consulta

 <código> seleccionar * | <column_list> | <recuento (*)> 
de <objeto> [donde <condicionales>]
[ordenar por <column_list>] [límite [<m>,] <n>];

</code>

La lista de columnas en el orden por cláusula puede tener como máximo dos nombres de columna.

Nombre Descripción
column_list Una lista de nombres de campo separados por comas.
objeto El nombre de tipo del objeto.
condicionales Las operaciones condicionales o en cláusulas o cláusulas similares separadas por operaciones 'y' o 'o' se procesan de izquierda a derecha. No hay agrupación, es decir, operadores de corchetes.
operadores condicionales <,>, <=,> =, =,! =
en cláusulas <nombre de columna> en (<lista de valores>).
como cláusulas <nombre de columna> en (<patrón de valor>).
lista de valores Una lista de valores separados por comas.
m, n Los valores enteros para especificar el desplazamiento y el límite respectivamente.

Sincronizar

Sync devolverá un objeto SyncResult que contiene los detalles de los cambios después de modifiedTime.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

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

& sessionName = [id de sesión]
& modifiedTime = [marca de tiempo]
& elementType = [elementType]
</code>

elementType: este es un parámetro opcional. Si se especifica, solo se devuelven los cambios para ese módulo después del tiempo especificado. De lo contrario, se devuelven los cambios en todos los módulos accesibles por el usuario después del tiempo especificado.

TimeStamp: una representación larga del número de segundos desde la época de Unix.

Ejemplo 1

Crea una cuenta y captúrala en la API de sincronización.

La respuesta contiene la cuenta que se creó.

Ejemplo 2

Cree una cuenta y un contacto, use la API de sincronización solo para el módulo Cuentas, solo se devuelven los cambios en el módulo Cuentas.

 <code> // tiempo después del cual se necesitan todos los cambios en el servidor. 
$ stime = tiempo ();
// Cree algunos datos ahora para que sean capturados por la respuesta de la API de sincronización.

// completa los detalles de Accounts.userId se obtiene de loginResult.
$ accountData = array ('nombre de cuenta' => 'Simplemente', 'ID_usuario_asignado' => $ ID_usuario);
// codifica el objeto en formato JSON para comunicarse con el servidor.
$ objectJson = Zend_JSON :: encode ($ accountData);
// nombre del módulo para el que se debe crear la entrada.
$ moduleName = 'Cuentas';

// sessionId se obtiene de loginResult.
$ params = array ("sessionName" => $ sessionId, "operación" => 'crear',
"element" => $ objectJson, "elementType" => $ moduleName);
// Crear debe ser solicitud POST.
$ httpc-> publicación ("$ endpointUrl", $ params, verdadero);
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('error de creación:'. $ jsonResponse ['error'] ['errorMsg']);
$ createResult = $ jsonResponse ['resultado'];

// Crea un contacto.
// completa los detalles de los contactos. El ID de usuario se obtiene de loginResult.
$ contactData = array ('apellido' => 'Valiente', 'asignado_user_id' => $ userId);
// codifica el objeto en formato JSON para comunicarse con el servidor.
$ objectJson = Zend_JSON :: encode ($ contactData);
// nombre del módulo para el que se debe crear la entrada.
$ moduleName = 'Contactos';

// sessionId se obtiene de loginResult.
$ params = array ("sessionName" => $ sessionId, "operación" => 'crear',
"element" => $ objectJson, "elementType" => $ moduleName);
// Crear debe ser solicitud POST.
httpc-> post ("$ endpointUrl", $ params, true);
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('error de creación:'. $ jsonResponse ['error'] ['errorMsg']);
$ SavedObject = $ jsonResponse ['resultado'];
$ id = $ SavedObject ['id'];

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

// la sincronización debe ser GET Request.
$ httpc-> get ("$ endpointUrl? $ params");
$ respuesta = $ httpc-> currentResponse ();
// decodifica la respuesta de codificación json del servidor.
$ jsonResponse = Zend_JSON :: decode ($ respuesta ['cuerpo']);

// la operación fue exitosa obtener el token de la respuesta.
if ($ jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('consulta fallida:'. $ jsonResponse ['errorMsg']);
// Matriz de SimplyObjects
$ retrivedObjects = $ jsonResponse ['resultado'];

</code>

SyncResult

Objeto que representa la respuesta de una operación de sincronización.

 <code> SyncResult { 
actualizado: [Objeto] // Lista de objetos creados o modificados.
eliminado: [Id] // Lista de * Id * de objetos eliminados.
lastModifiedTime: Timstamp // hora del último cambio. que se puede usar en la próxima llamada a la API de sincronización para obtener todos los cambios más recientes que el cliente no ha obtenido.
}
</code>

Saliendo de tu cuenta

Cerrar sesión

Salga de la sesión del servicio web, lo que deja la sesión del servicio web no válida para su uso posterior.

Formato de URL

 <código> Tipo de solicitud: OBTENER 

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

& sessionName = [id de sesión]
</code>

Ejemplo

Ampliación del cliente web Simply mediante el servicio web

Extender sesión

Extiende la sesión actual del cliente web Simply al servicio web y devuelve un ID de sesión del servicio web. Al trabajar desde dentro del cliente web Simply, el usuario puede volver a utilizar la sesión autenticada actual en lugar de iniciar sesión en Simply nuevamente para acceder al servicio web.

Nota: si el usuario extiende una sesión, la sesión se vinculará, por lo que cerrar la sesión de uno (el servicio web o el cliente web) también cerrará la sesión del otro. Para que funcione la operación de extensión de sesión, las cookies deben estar habilitadas en el navegador del cliente.

Formato de URL

 <código> Tipo de solicitud: POST 

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

</code>

Ejemplo

 <código> 
</code>

Este ejemplo está escrito en Javascript, ya que Extend Session solo es válida desde el cliente web Simply.

Requisitos para ejecutar el ejemplo

  • Biblioteca JQUERY: para realizar la solicitud http ajax.
  • Biblioteca JSON: archivo json2.js disponible con Simply en json.org.

Ejemplo 1

 <código> 
// parámetros de operación.
var params = "operación = extensión de sesión";
// punto final de los servicios.
var endPointUrl = "http: //Simply_url/webservice.php";

// extendSession es una solicitud de publicación, invoca la solicitud de publicación http jquery.
$ .post (endPointUrl, params, function (result) {
// decodifica la respuesta de codificación json del servidor.
var jsonResponse = json.parse (resultado);

// la operación fue exitosa obtener el token de la respuesta.
if (jsonResponse ['éxito'] == falso)
// manejar el caso de falla.
die ('error de inicio de sesión:' + jsonResponse ['error'] ['errorMsg']);

// iniciar sesión correctamente, extraer sessionId y userId de LoginResult para que pueda usarse para más llamadas.
var sessionId = jsonResponse ['resultado'] ['nombre de sesión'];
var userId = jsonResponse ['resultado'] ['userId'];
});
</code>

Actualizado en 24/09/2020

¿Te resultó útil este artículo

Artículos relacionados