Utilizar las API de REST de Salesforce con Heroku
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Enumerar los casos de uso para la utilización de las API de REST de Salesforce.
- Describir los distintos tipos de autenticación.
- Explicar cómo utilizar las API de REST de Salesforce con aplicaciones en Heroku.
APIs de REST de Salesforce y Heroku
Las API de REST de Salesforce proporcionan una forma sencilla de integrarse con Salesforce a través de solicitudes HTTP + JSON sencillas. Hay unas API de REST para acceder a casi todo en Salesforce, de modo que su aplicación personalizada puede hacer casi todo con los datos, los procesos y los metadatos en Salesforce. Las API de REST utilizan OAuth para la autenticación, que es la forma estándar de controlar la autenticación de REST.
Aunque las API de REST pueden utilizarse directamente, existen numerosas bibliotecas de contenedores referentes a las API, lo que facilita su uso en Node.js, Python, Ruby, Java, etcétera. Las bibliotecas de contenedores controlan tareas de bajo nivel, como la autenticación y el control de solicitudes y respuestas. De este modo, en vez de construir manualmente solicitudes HTTP como (con Node.js como ejemplo):
const query = 'SELECT name Account'; const url = 'https://MyDomainName.my.salesforce.com/services/data/v59.0/query/?q=' + encodeURIComponent(query); request.get(url, { 'auth':{ 'bearer':'bearerToken' } });
Puede utilizar la biblioteca de código abierto JSforce para Node.js y simplemente hacer lo siguiente:
conn.query('SELECT name FROM Account', callback);
En última instancia, la biblioteca JSforce
está haciendo lo mismo en segundo plano, pero la biblioteca facilita el uso de la API.
Puede construir integraciones de aplicación a aplicación e interfaces de usuario personalizadas sobre las API de REST de Salesforce. La principal diferencia es cómo se controla la autenticación. Con una integración de aplicación a aplicación, la aplicación conoce un único usuario de integración, y todas las llamadas a las API de REST se realizan como ese usuario. Con una interfaz de usuario personalizada, el usuario no se autentica directamente con la aplicación personalizada. En su lugar, el usuario pasa por el proceso de OAuth para autorizar la aplicación personalizada a que realice llamadas de API en su nombre. Cada solicitud a las API de REST se realiza en nombre del usuario nombrado que está utilizando la interfaz de usuario personalizada.
Un caso de uso para una integración de aplicación a aplicación es transformar, clasificar y, luego, replicar o hacer de proxy de los datos para otro sistema. Por ejemplo, una aplicación de gestión de pedidos de cara a los clientes ejecutándose en Heroku necesita obtener información de clientes desde Salesforce. Esta configuración puede utilizar un único usuario de integración para obtener toda la información necesaria procedente de Salesforce.
No obstante, si la aplicación de gestión de pedidos es para el back-office donde los usuarios inician sesión a través de Salesforce, la aplicación es una interfaz de usuario personalizada que utiliza OAuth para permitir que la aplicación de gestión de pedidos realice solicitudes de API en nombre del usuario nombrado. En este caso, saber qué usuario nombrado está realizando cada llamada REST es importante para la seguridad y la auditoría.
Con Heroku, es fácil implementar cada tipo de aplicación y aprovechar OAuth y las API de REST de Salesforce.
Puede profundizar en la documentación de las API de REST de Salesforce para obtener información sobre las API de bajo de nivel como mejor le convenga.
Autenticación con las API de REST con OAuth
La autenticación es un aspecto clave del uso de las API de REST, debido a que cada solicitud a las API debe incluir un token o clave de autenticación. Ya sea que esté utilizando una integración de aplicación a aplicación o una interfaz de usuario personalizada, su aplicación necesita una aplicación conectada en Salesforce para permitir que Salesforce identifique qué aplicación está realizando las solicitudes y que los administradores de la organización gestionen el acceso a las API.
Único usuario
Con una integración de aplicación a aplicación, la aplicación necesita conocer las credenciales de un único usuario de integración. Luego puede realizarse una llamada a una API de REST para iniciar sesión con las credenciales, que devuelve el token de autenticación.
Usuarios nombrados
Cuando se construye una interfaz de usuario personalizada, la aplicación nunca recibe las credenciales reales. En su lugar, el proceso de OAuth proporciona un código a la aplicación para obtener un token de autorización. Debido a que el usuario autoriza manualmente el acceso de la aplicación a Salesforce, el flujo sigue estos pasos.
- El usuario intenta visitar una página que requiere autenticación.
- La aplicación en Heroku redirecciona al usuario a la página de OAuth de Salesforce.
- Si la aplicación no se autorizó previamente, se realiza una solicitud al usuario.
- Cuando queda autorizado, Salesforce redirecciona al usuario a la aplicación con un código.
- La aplicación utiliza el código para recuperar un código de acceso y un token de actualización.
- La aplicación utiliza el token de acceso para realizar llamadas de API de REST a Salesforce.
Normalmente, el acceso y los tokens de actualización están cifrados y almacenados con alguna forma de estado de sesión o base de datos de modo que el usuario no tenga que seguir pasando por el flujo de autorización con cada solicitud.
Recuerde, ¡estos tokens son confidenciales y deben manejarse con una diligencia de seguridad extrema!