Artículo
· 11 jul, 2023 Lectura de 5 min

Conectando a Salesforce REST API

¡Hola Comunidad!

Seguramente habéis tod@s escuchado algo sobre Salesforce – la empresa y su software. En este articulo nos dedicaremos a la conectividad al software de CRM – Salesforce CRM. De una manera muy genérica, Salesforce CRM tiene la capacidad de administrar las interacciones con los clientes de una organización a través de varios métodos, como llamadas telefónicas, consultas por correo electrónico, comunidades, medios y redes sociales. Se dice que Salesforce maneja todas las relaciones con los clientes - centrándose en los procesos de ventas, soporte y marketing. Este servicio/software está disponible en la nube.

Qué bueno sería que pudiésemos conectarnos a Salesforce desde nuestro entorno InterSystems IRIS o cualquier otro producto de InterSystems.

La verdad es que acceder a los objetos (datos) de Salesforce es bastante simple e intuitivo. Este artículo se dedica a describir los pasos necesarios para establecer conectividad y acceder a los datos disponibles en Salesforce.

APIs de Salesforce

Salesforce dispone de una multiplicidad de APIs. Para nosotros, y a lo largo de este artículo, nos dedicaremos a la API REST. Esta API proporciona una interfaz de servicios web basada en REST - poderosa, conveniente y simple para interactuar con Salesforce. Sus ventajas incluyen la facilidad de integración y desarrollo, siendo una excelente opción tecnológica para usar con aplicaciones móviles y proyectos web. Para determinados proyectos, puede utilizarse la API REST con otras APIs de Salesforce. Para más información sobre las APIs de Salesforce, podéis consultarlo aquí.

Configuración en Salesforce

Aún que no sea el objetivo de este artículo, os dejo aquí el enlace al tutorial de configuración del REST endpoint en Salesforce - se trata de la guía en la base de este articulo. De manera muy resumida, los pasos necesarios son:

Paso 1: Regístrese en Salesforce Developer Edition proporciona una solución fácil y gratuita para que pueda utilizar Salesforce para pruebas y desarrollo.

Paso 2: configurar la autenticación para enviar solicitudes con éxito, la API REST requiere un token de acceso obtenido mediante autenticación. Es cierto que uno puede crear y autenticarse en su propia ConnectedApp (aplicación conectada). Sin embargo, usaremos la CLI de Salesforce para mayor comodidad. Salesforce CLI es una ConnectedApp que puede autenticar y no requiere ningún trabajo para configurar. Para ello habrá que acceder a la consola de Salesforce:

 

Navegar a Apps -> App Manager -> Create ConnectedApp

 

Los parámetros de configuración son:

  1. Connected App Name
  2. API Name           
  3. Contact Email
  4. Enable OAuth Settings: sí
  5. Callback URL: https://localhost
  6. Selected OAuth Scopes: Full access (full)
  7. Grabar/Continuar (podrá tardar hasta unos 10 minutos) 

En cuanto se termine la generación del endpoint tendremos nuestro ConsumerKey y ConsumerSecret – habrá que copiar y guardarlos.

Paso 3: Nos falta una última configuración en Salesforce.

    Acceder a Setup -> Platform Tools -> Apps -> Connected Apps -> Manage Connected Apps

    Editar las características de la App: 

     

    Desde nuestra ConnectedApp hemos de editar las políticas (edit policies) y cambiar los siguientes parámetros tal y como se adjunta:

    1. Permitted Users: all users may self-authorize
    2. IP Relaxation: Relax IP restrictions for activated devices

    Desde InterSystems IRIS:

    Paso 1: Usaremos Python embebido para nuestra conexión a Salesforce. Lo primero que hemos de hacer es instalar el paquete necesario para establecer las conexiones HTTP – Requests. De manera a instalarlo en un container es necesario:

    $ pip3 install --target /usr/irissys/mgr/python requests

     

    Paso 2: A continuación, tenemos una clase ejemplo con código de muestra para acceder a los recursos de Salesforce. En este caso se hace una solicitud para obtener los objectos disponibles. Antes de probar este ejemplo, hay que asegúrese de completar los requisitos previos y obtener un token de acceso en la configuración de Salesforce.

    Class salesforce.PyConnTest
    {
    
    ClassMethod connTest() [ Language = python ]
    {
        import requests
        
        #create access token
        CONSUMER_KEY='XXXXXXXXXX'
        CONSUMER_SECRET='XXXXXXXXXX'
        DOMAIN_NAME='https://intersystems4-dev-ed.develop.my.salesforce.com'
        USERNAME='mymail@domain.com'
        PASSWORD='mypassword'
        json_data={
            'grant_type': 'password',
            'client_id': CONSUMER_KEY,
            'client_secret': CONSUMER_SECRET,
            'username': USERNAME,
            'password': PASSWORD
        }
    
        response_access_token=requests.post(DOMAIN_NAME + '/services/oauth2/token', data=json_data)
        print(response_access_token.status_code)
        print(response_access_token.reason)
        print(response_access_token.json())
    
        if response_access_token.status_code == 200:
            access_token_id=response_access_token.json()['access_token']
            print('access token created')
    
        #retrieve available objects
        headers={
            'Authorization': 'Bearer ' + access_token_id 
        }
        response_sObject=requests.get(DOMAIN_NAME + '/services/data/v53.0/sobjects', headers=headers)
        print(response_sObject.reason)
        print(response_sObject.json())
    }
    
    }
    

    Los parámetros más relevantes son:

    1. grant_type: en este ejemplos usamos 'password'.
    2. client_id: se trata del identificador publico para la App. Es generado en el momento de creación de la ConnectedApp.  
    3. client_secret: se trata de un secreto conocido solamente por el servidor de Autorización y por la App. Se genera en el momento de creación de la ConnectedApp. 
    4. username: usuario registrado en Salesforce
    5. password: contraseña del usuario de Salesforce.

    Con esta configuración básica se establece la conexión entre InterSystems IRIS (o cualquier otro producto de InterSystems) y Salesforce. Este articulo se basa en la guía rápida de Salesforce y se dedica a la API REST de Salesforce.  

    Comentarios (0)1
    Inicie sesión o regístrese para continuar