Node JS

SDK de Node JS para Zoho CRM

El SDK de Node es un envoltorio para las API de Zoho CRM. En consecuencia, la invocación de una API de Zoho CRM desde la aplicación de Node es solo una llamada a una función que proporcione la respuesta más adecuada.

Este SDK permite la autenticación de un solo usuario y de usuarios múltiples.

Registrar un cliente de Zoho

Como las API de Zoho CRM se autentican con los estándares OAuth2, deberá registrar la aplicación del lado del cliente en Zoho. Para registrar su aplicación:

  1. Visite esta página https://accounts.zoho.com/developerconsole.
  2. Haga clic en "Agregar ID de cliente".
  3. Ingrese el nombre de cliente, el dominio de cliente y el URI de redireccionamiento.
  4. Seleccione el tipo de cliente como En la Web.
  5. Haga clic en "Crear".
  6. Su aplicación del lado del cliente se debería haber creado y mostrado.
  7. Los ID de cliente y Cliente secreto de la aplicación recién registrados se pueden encontrar haciendo clic en Opciones → Editar.
    (Opciones es el ícono de tres puntos en la esquina derecha).

Instalación del SDK de Node para CRM

El SDK de Node JS se instalará y se creará un paquete denominado "zcrmsdk" en el equipo local.

El paquete se puede agregar mediante el siguiente código:

var ZCRMRestClient = require('zcrmsdk')

Instalar el SDK

Para instalar el SDK de Node JS debe hacer lo siguiente:

  • Ejecute este comando:

    npm install zcrmsdk

Otro método para instalar el SDK es agregarlo en las dependencias del package.json del servidor de Node con la última versión (recomendado) y ejecutar npm install en el directorio, lo que instalará todas las dependencias mencionadas en package.json.

Actualizar el SDK

  • Ejecute este comando para actualizar el SDK de Node JS a la última versión.

    npm install --upgrade zcrmsdk

Configuraciones

Debe brindar al SDK los detalles de su cliente de OAuth como un archivo de propiedades. En el SDK, deberá configurar un archivo llamado oauth_configuration.properties. Coloque los valores respectivos en dicho archivo. Puede colocar el archivo en la carpeta Recursos desde donde se utiliza el SDK.

Ingrese los valores solo para las siguientes claves.

Según su dominio (EU,CN), cambie el valor de crm.iamurl. Valor predeterminado establecido como dominio estadounidense.

En el archivo oauth_configuration.properties:

[zoho]
crm.iamurl=
crm.clientid=
crm.clientsecret=
crm.redirecturl=

  • crm.clientid, crm.clientsecret y crm.redirecturl son las configuraciones del cliente de OAuth que obtendrá después de registrar su cliente de Zoho.
  • crm.iamurl es la dirección URL de las cuentas. Puede ser accounts.zoho.com o accounts.zoho.eu. Si no se especifica la crm.iamurl, de forma predeterminada la dirección URL será accounts.zoho.com.

En el archivo configuration.properties:

[crm]
api.url=
api.user_identifier=
api.tokenmanagement=
[mysql]
username=
password=

  • api.url es la dirección URL utilizada para enviar solicitudes a las API. De forma predeterminada, la dirección URL es www.zohoapis.com.
  • api.user_identifier estará vacío de forma predeterminada. Para la autenticación de usuario único, se puede llenar esta clave con el respectivo ID de correo electrónico, de manera que todas las solicitudes se realicen mediante el uso de la autenticación de este usuario.
  • api.tokenmanagement se proporciona como una medida para administrar y mantener tokens. Si no se proporciona tokenmanagement, se seguirá la implementación predeterminada del SDK (MySQL).
  • Aquí se puede indicar username y password si ya los creó para su MySQL.

Las claves mencionadas anteriormente en el archivo configuration.properties son todas opcionales.

Mecanismo de almacenamiento de token

Para utilizar el almacenamiento predeterminado de token proporcionado por el SDK, debe hacer lo siguiente:

MySQL debe ejecutarse en el puerto predeterminado en localhost.

Se debe crear una base de datos con el nombre zohooauth y se debe presentar en la base de datos una tabla con la configuración que aparece a continuación: La tabla debe llamarse "oauthtokens" y debe tener las columnas "useridentifier" (varchar) "accesstoken" (varchar), "refreshtoken" (varchar) y "expirytime" (bigint).

Una vez que la configuración se haya establecido, SDK manejará el almacenamiento y la recuperación de los tokens.

Si el usuario quiere utilizar su propio mecanismo, puede mencionarlo en configuration.properties proporcionando el módulo respectivo en api.tokenmanagement.

Este módulo debe contener los siguientes métodos:

  1. saveOAuthTokens(token_obj)
  2. updateOAuthTokens(token_obj)
    • Independientemente de la respuesta, se producirá la siguiente ejecución. Por eso, el usuario debe tener cuidado durante el manejo de su módulo.
  3. getOAuthTokens()
    • La respuesta esperada para este método: un arreglo JSON que contenga la respuesta JSON con los campos expirytime, refreshtoken y accesstoken.

Nota:

  • Todos los métodos deben devolver la promesa.

Se llamará a saveOAuthtoken y updateOAuthTokens con los parámetros de JSON, los que contendrán los siguientes campos:

access_token
refresh_token
expires_in

Ejemplo de código para la gestión de tokens personalizados getOAuthTokens()

tokenmanagement.getOAuthTokens = function(user_identifier){ //vence en : 1527839622728
return new Promise(function(resolve,reject){
var result = {};
result.accesstoken = '1000.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx';
result.expirytime = 15278396227289
result.refreshtoken = '1000.xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx';
var result_array =[];
result_array.push(result);
resolve(result_array);
});
}

Inicialización

Cuando la aplicación se inicia, se solicita la inicialización del siguiente fragmento de código.

var ZCRMRestClient = require('zcrmsdk');
ZCRMRestClient.initialize().then(function()
{
//haga lo que sea necesario después de la inicialización
})

Generar tokens de actualización y concesión que no requieren autorización

Para aplicaciones cliente autónomo, la propia concesión autorizada token debe generarse desde la consola de desarrollador Zoho (https://accounts.zoho.com/developerconsole)

  1. Visite https://accounts.zoho.com/developerconsole
  2. Haga clic en la opción OpcionesSelf Client del cliente que desea autorizar.
  3. Ingrese uno o más de los alcances de Zoho CRM válidos (separados por comas) que desea autorizar en el campo "Alcance" y elija la fecha de vencimiento. Indique el alcance “aaaserver.profile.READ” junto con los alcances de Zoho CRM.
  4. Copie el token de concesión para realizar una copia de seguridad.
  5. Genere un refresh_token a partir del token de concesión haciendo una petición POST con la dirección URL que se menciona a continuación

    https://accounts.zoho.com/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code

  6. Copie el token de actualización para realizar una copia de seguridad.

El token de concesión generado solo es válido durante el período estipulado que escogió cuando lo generó. Por lo tanto, los tokens de acceso y actualización se deben generar dentro de ese período.

Cada vez que se reinicia el servidor, se debe llamar esta función; ambos archivos de configuración se deben llenar con los valores correctos antes de llamarla, de lo contrario, se producirá una excepción.

Todas las funciones devuelven promesas en el sdk de node para zcrm.

Obtener los tokens de acceso y actualización a partir del token de concesión mediante llamadas al método

ZCRMRestClient.generateAuthTokens(user_identifier,grant_token).then(function(auth_response){
console.log("access token :"+auth_response.access_token);
console.log("refresh token :"+auth_response.refresh_token);
console.log("expires in :"+auth_response.expires_in);
});

Se generan los tokens de acceso y actualización. En el caso de que el token de acceso haya vencido, el SDK lo actualizará automáticamente.

Si el usuario tiene un token de actualización y necesita generar un token de acceso, puede utilizar la función que se menciona a continuación:

ZCRMRestClient.generateAuthTokenfromRefreshToken(user_identifier,refresh_token).then(function(auth_response){
console.log("access token :"+auth_response.access_token);
console.log("refresh token :"+auth_response.refresh_token);
console.log("expires in :"+auth_response.expires_in);
});

Ejemplo de solicitud de la API para obtener clientes potenciales:

var input ={};
input.module = "Leads";
var params = {};
params.page = 0;
params.per_page = 5;
input.params = params;
zcrmsdk.API.MODULES.get(input).then(function(response){
    var result = "<html><body><b>Leads</b>";
    var data = response.body;
    data = JSON.parse(data);
    data = data.data;
    for (i in data){
        var record = data[i];
        var name = record.Full_Name;
        result+="<span>"+name+"</span>";
    }
    result+="</body></html>";
   })

Jerarquía

zcrmsdk

   API
     ORG
       get
     MÓDULOS
       get
       post
       put
       delete
       getAllDeletedRecords
       getRecycleBinRecords
       getPermanentlyDeletedRecords
       search
     AJUSTES
       getFields
       getLayouts
       getCustomViews
       updateCustomViews
       getModules
       getRoles
       getProfiles
       getRelatedLists
     ACCIONES
       convert
     USUARIOS
       get
     DOCUMENTOS ADJUNTOS
       uploadFile
       deleteFile
       downloadFile
       uploadLink
       uploadPhoto
       downloadPhoto
       deletePhoto
     FUNCIONES
       executeFunctionsInGet
       executeFunctionsInPost

Como figura en la jerarquía, el módulo de entidad zcrmsdk tiene variables que sirven para capturar sus propiedades y las de otros módulos.

Por ejemplo, para llamar a una API con el fin de obtener los datos del módulo, la solicitud debe ser zcrmsdk.API.MODULES.{operation_type}. Los tipos de operación pueden ser GET, POST, PUT, DELETE o CREATE.

Administración de respuestas

Todas las llamadas de la API darán la respuesta dada por las API de Zoho, excepto la descarga de archivos.

Para descargar archivos, la respuesta contendrá un campo adicional de filename.

Administración de errores:

Todos los errores se generarán de forma explícita y se debe tener cuidado en identificarlos.

Share this post : FacebookTwitter

Todavía no puede encontrar lo que está buscando?

Escríbenos: support@zohocrm.com