Categories
Developers Integrations Tutoriales de Salesforce

Cargue datos mediante programación con la API de ingesta ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Cargue datos mediante programación con la API de ingesta | Blog de desarrolladores de Salesforce

Salesforce Data Cloud ofrece varios conectores predefinidos para la importación de datos. Estos le permiten conectar otra organización de Salesforce, una instancia de Marketing Cloud, almacenamientos de datos como Amazon S3 o cualquier otra fuente admitida por MuleSoft Salesforce Data Cloud Connector . Para conectarse a un sistema de terceros, puede utilizar la API de ingesta .

La API de ingesta es una interfaz RESTful que facilita la carga de datos mediante programación en Data Cloud. Admite patrones de interacción masiva y de transmisión. El patrón de transmisión usa JSON como su formato, cargando datos en micro lotes a través de la API REST. El patrón masivo, por otro lado, emplea el formato CSV y carga datos usando trabajos.

En esta publicación de blog, analizaremos cómo configurar el conector de la API de ingesta y comenzar a cargar datos mediante programación utilizando los patrones Streaming y Bulk.

Cuándo usar la ingestión Streaming vs Bulk

Ingestión de transmisión Ingestión a granel
Al actualizar pequeños microlotes de registros casi en tiempo real Al mover grandes volúmenes de datos en un programa diario, semanal o mensual
Cuando se utilizan sistemas de origen de datos que se basan en arquitecturas de transmisión modernas Al usar sistemas heredados, donde solo puede exportar datos durante las horas de menor actividad
Al crear eventos de captura de datos modificados Al usar una nueva organización de Data Cloud que desea rellenar con 30, 60 o más de 90 días de datos
Al consumir datos de webhooks

Para configurar la API de ingesta, deberá seguir cuatro pasos de requisitos previos:

  • Crear un conector de API de ingesta
  • Crear e implementar un flujo de datos
  • Crear una aplicación conectada
  • Solicitar un token de acceso a la nube de datos

Veamos el proceso de creación y configuración de un conector de ingesta para comenzar a cargar datos en Data Cloud.

Creación de un conector de API de ingesta

Supongamos que tiene acceso a Data Cloud. Para conectar una nueva fuente de API de ingesta mediante el conector de API de ingesta, vaya a Configuración de nube de datos y seleccione API de ingesta .

Aquí encontrará todos los conectores disponibles en su organización. Para crear uno nuevo, haga clic en Conectar y proporcione un nombre. Para nuestra aplicación de muestra, trabajaremos con una empresa de energía solar ficticia. Estamos interesados en recibir eventos de métricas relacionadas con el rendimiento energético de sus paneles solares.

Una vez que se haya creado el conector, necesitaremos decirle a Data Cloud qué tipo de datos estamos esperando. Para esto, necesitaremos cargar un archivo de esquema utilizando la especificación OpenAPI. Este archivo de esquema tiene requisitos específicos, así que asegúrese de consultar la documentación para obtener más información.

A continuación se muestra un ejemplo del archivo de esquema que cargaremos, que representa un solar_panel_event . Los campos clave a tener en cuenta incluyen event_id , que será único para cada evento y luego se asignará en Data Cloud como clave principal. Otro es customer_id , que nos será útil para mapear el evento con un cliente de nuestra organización. Finalmente, date_time representa la hora del evento.

panel_solar_event.yaml

Una vez que carguemos el esquema, podremos obtener una vista previa de sus campos y tipos de datos, y luego guardarlo en nuestro conector.

Ahora que nuestro conector tiene un esquema, podemos decir que está creado. Sin embargo, aún no está listo para comenzar a recibir datos. Necesitamos crear un flujo de datos para este propósito.

Nota: Dado que los esquemas pueden evolucionar con el tiempo, también puede usar la interfaz del conector de la API de ingesta para actualizar el esquema y agregar nuevos campos a su objeto de datos según sea necesario.

Creación e implementación de un flujo de datos

Ya tenemos listo nuestro conector API de ingesta. Ahora es el momento de establecer una conexión para comenzar a importar datos. Para eso, necesitamos crear un flujo de datos . Una vez que el flujo de datos está activo, podemos comenzar a ingerir datos en Data Cloud y almacenarlos como un objeto de Data Lake.

Para crear un nuevo flujo de datos, vaya a su pestaña en la aplicación Data Cloud, haga clic en Nuevo , seleccione Ingestion API y luego haga clic en Siguiente .

Nota: La opción API de ingesta está deshabilitada si no tiene ninguna fuente de ingesta conectada.

A continuación, verá los diferentes objetos que están asociados con su esquema. En nuestro caso, seleccione el objeto solar_panel_event y haga clic en Siguiente .

Al crear un flujo de datos, deberá seleccionar una categoría o tipo de datos en ese flujo de datos. Hay tres categorías: Compromiso , Perfil y Otro .

Compromiso Un conjunto de datos que representa un compromiso basado en series de tiempo, como un evento, interacción con el cliente, interacción web, etc.

Cuando se selecciona, el menú desplegable Campo de hora del evento aparece en la interfaz de usuario.

Perfil Un conjunto de datos que representa:

– Una lista de consumidores con identificadores, como identificaciones de consumidores, direcciones de correo electrónico o números de teléfono

– Una lista de empresas o cuentas con ID de cuenta

– Una lista de empleados o cualquier otra población por la que desee segmentar o utilizar como población inicial del segmento

Otro Un conjunto de datos que no es un compromiso o un perfil, como información de productos o tiendas.

Para nuestro ejemplo, dado que estamos planeando recibir eventos, seleccionaremos Compromiso . Mapearemos el event_id como la clave principal y la date_time como el campo de hora del evento.

Ahora que nuestros datos están configurados, es hora de implementarlos. Después de revisar los flujos de datos que se van a crear, hagamos clic en Implementar para activarlos.

Ahora, echemos un vistazo a la página de detalles del flujo de datos. Aquí podemos ver el objeto Data Lake que se ha creado en Data Cloud. Puede identificar un objeto de Data Lake por su sufijo __dll . Desde esta misma interfaz, puede comenzar a asignar sus datos a los objetos de su organización para crear objetos de modelo de datos (parte del proceso de armonización de Data Cloud). Sin embargo, no cubriremos ese tema en esta publicación de blog, pero tenemos un excelente video con Danielle Larregui que le muestra cómo hacerlo.

Nuestro conector API de ingesta está listo para comenzar a recibir datos de sistemas de terceros. Para confirmar, regresemos a la interfaz de configuración de la API de ingesta, donde puede ver que el estado del conector es En uso .

Creación de una aplicación conectada

La API de ingesta admite todos los flujos de OAuth 2.0 admitidos por otras API REST de Salesforce. Para cargar datos mediante la API de ingesta, su aplicación conectada requiere los siguientes ámbitos:

Ámbitos de OAuth requeridos

cdp_ingest_api Acceda y administre sus datos de API de ingesta de nube de datos
API Accede y administra tus datos
refresco_token, acceso_sin conexión Realizar solicitudes en su nombre en cualquier momento

Además, nuestra aplicación conectada requerirá un certificado digital. Para crear uno, puede ejecutar el siguiente comando usando el comando openssl :

Este comando creará dos archivos, salesforce.key , que es la clave privada, y salesforce.crt , que es la clave pública.

Nota : si no tiene instalado el comando openssl , puede instalarlo desde el sitio web de OpenSSL .

Para saber cómo crear una aplicación conectada, consulte la documentación oficial.

Solicitud de un token de acceso a la nube de datos

Para este ejemplo, usaremos el flujo de soporte JWT de OAuth 2.0 . Primero, necesitaremos crear un JWT (JSON Web Token) para solicitar un token de acceso.

Para crear un JWT, configurará el encabezado para usar el algoritmo RSA256 .

Encabezado JWT

Luego, configure las siguientes notificaciones, teniendo en cuenta algunas notificaciones importantes:

  • iss: la clave de consumidor de OAuth/ID de cliente de su aplicación conectada
  • sub: el nombre de usuario de su organización de Data Cloud
  • exp: el tiempo de vencimiento del token, expresado como una marca de tiempo de época

reclamos JWT

Nota : La época de Unix (o la hora de Unix o la hora POSIX o la marca de tiempo de Unix) es la cantidad de segundos que han transcurrido desde el 1 de enero de 1970 (medianoche UTC/GMT).

A continuación, deberá utilizar el algoritmo JWT para obtener el token completo y verificado.

Pero seamos honestos, no queremos crear un JWT manualmente. Para esto, utilizaremos el sitio web JWT.io para simplificar el proceso. Asegúrese de que el mensaje Firma verificada aparezca a continuación, lo que indica que nuestro JWT es válido.

O puede crearlo programáticamente usando el lenguaje de programación de su elección. Más adelante en este artículo, compartiré un práctico script de Node.js para generar el token de acceso a la nube de datos.

Antes de que podamos autenticarnos usando el JWT que generamos, debemos aprobar este consumidor. Puede hacerlo abriendo la siguiente URL en su navegador.

<dx-code-block title language code-block="https://login.salesforce.com/services/oauth2/authorize?response_type=token&client_id=&redirect_uri=»>

Y luego, inicie sesión y permita el acceso:

Ahora que hemos aprobado nuestro JWT, necesitamos autenticarnos. Este es un proceso de dos pasos. Primero, necesitamos obtener un token de acceso usando el JWT. Para hacer esto, realicemos una solicitud POST HTTP con la siguiente información.

<dx-code-block title language code-block="POST https://login.salesforce.com/services/oauth2/token
Content-Type : x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&assertion=»>

Nota: asegúrese de reemplazar <JWT> con el token que creamos anteriormente.

Esta solicitud nos dará un token de acceso central y la URL de la instancia de Data Cloud, utilizando nuestra aplicación conectada. Como se muestra en el alcance , se nos otorgan los alcances cdp_ingest_api y api .

A continuación, debemos cambiar el token de acceso principal por un token de nube de datos. Para hacer eso, realicemos la siguiente solicitud POST.

<dx-code-block title language code-block="POST /services/a360/token Content-Type : x-www-form-urlencoded grant_type=urn:salesforce:grant-type:external:cdp &subject_token= &subject_token_type=urn:ietf:params:oauth:token-type:access_token»>

Ahora, estamos autenticados. El token de acceso a la nube de datos resultante es lo que usaremos para realizar solicitudes a la API de ingesta.

Para simplificar el proceso, he creado un script Node.js. Crea el JWT y realiza la autenticación en dos pasos. Para usarlo, necesitará la clave privada que creó anteriormente, así como un archivo de configuración similar al siguiente.

config.js

Además, instale la dependencia jsonwebtoken desde npm ejecutando:

credenciales.js

console.log(auth)) .catch((err) => console.error(err)); «>

El método generateAccessToken devolverá el objeto de autenticación de Data Cloud, incluido el access_token y la instance_url necesarios para comenzar a ingerir datos en Data Cloud.

Ingesta de datos

Tenemos toda la información necesaria para comenzar a ingerir datos en la nube de datos. Esto se puede lograr utilizando los patrones Streaming o Bulk.

Transmisión

Para comenzar a transmitir datos en el conector de Ingestión de nube de datos, primero obtenga el nombre del conector y el nombre del objeto de la configuración del conector de la API de Ingestión. Para hacer esto, puede realizar una solicitud POST como la siguiente.

<dx-code-block title language code-block="POST https:///api/v1/ingest/sources/Solar_Panel_Events/solar_panel_event
Authorization: Bearer
Content-Type: application/json
{ "data": [ {"event_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479","customer_id": "003R00000123456789","battery": 75.2,"dc_current": 9.8,"dc_voltage": 35.6,"mpp_energy": 120.5,"ac_voltage": 220.1,"ac_current": 5.3,"date_time": "2023-07-07T10:15:30.05Z"} ] }»>

Nota : asegúrese de reemplazar <token de acceso a la nube de datos> y <url de instancia> con los valores respectivos que obtuvo del proceso de autenticación.

Si todo va bien, recibirás la siguiente respuesta:

Esto indica que nuestros datos han sido aceptados con éxito.

Nota : también puede validar los datos con el esquema antes de enviarlos agregando /actions/test al punto final de la API.

A granel

La ingestión masiva implica varios pasos, lo que agrega un nivel de complejidad al proceso:

  • Crear un trabajo: este paso implica crear un trabajo para especificar el tipo de objeto de los datos que se procesan y la operación que se realizará, que puede ser upsert o delete.
  • Cargar los datos en CSV: Después de crear el trabajo, el siguiente paso es cargar los datos en formato CSV. El archivo CSV debe contener los datos que se procesarán, con cada fila representando un registro y las columnas que contienen los valores de campo.
  • Indicar la preparación de los datos: una vez que se cargan los datos, deberá indicar que los datos están listos para ser procesados.
  • Cerrar o cancelar el trabajo: después de procesar los datos, puede cerrar el trabajo para marcarlo como completado o cancelar el trabajo si es necesario.

Para obtener más información sobre cómo usar los puntos de conexión masivos, puede consultar la documentación oficial .

Puede consultar los datos entrantes utilizando el Explorador de datos en Data Cloud. Allí, seleccionará el objeto Data Lake correspondiente al conector de ingesta que creó anteriormente.

Si desea probarlo usted mismo, siempre puede utilizar nuestra colección Postman de desarrolladores de Salesforce, que incluye las API de Salesforce Data Cloud .

Conclusión

Ahora, está listo para comenzar a cargar datos mediante programación en Data Cloud mediante la API de ingesta. Siguiendo los pasos anteriores, puede conectarse sin problemas a varias fuentes de datos e importar datos en tiempo real o en masa, y comenzar a aprovechar el poder y la magia de Salesforce Data Cloud.

Además, si prefiere aprender de un video, mi colega Aditya ha creado un video útil que explica lo que hemos cubierto en esta publicación de blog . Asegúrese de ver también los otros excelentes videos de la serie Data Cloud Decoded .

Recursos

Sobre los autores

Julián Duque es un defensor principal de desarrolladores en Salesforce, donde se enfoca en Node.js, JavaScript y desarrollo backend. Le apasiona la educación y el intercambio de conocimientos y ha estado involucrado en la organización de comunidades tecnológicas y de desarrolladores desde 2001.

Sígalo @julianduque en Threads, @julian_duque en Twitter, @julianduque.co en Bluesky social o LinkedIn .

Aditya Naag Topalli es una defensora de desarrolladores líder certificada 14 veces en Salesforce. Capacita e inspira a los desarrolladores dentro y fuera del ecosistema de Salesforce a través de sus videos, seminarios web, publicaciones de blog y contribuciones de código abierto, y también habla con frecuencia en conferencias y eventos en todo el mundo. Sígalo en Twitter o LinkedIn y vea sus contribuciones en GitHub .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/07/load-data-programmatically-with-the-ingestion-api.html

Categories
Developers Tutoriales de Salesforce

Integre Bots de Einstein en cualquier canal con el nuevo SDK y Framework ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Einstein Bots es una solución de chatbot conversacional que funciona con Einstein AI Platform de Salesforce. Su trabajo es interactuar con los clientes y brindarles la información que necesitan rápidamente sin intervención humana. También puede manejar tareas simples y repetitivas, lo que libera a los agentes para que manejen casos más complejos.

En Spring '22, lanzamos la API de la plataforma Einstein Bots (Beta) para ayudar a los clientes a aprovechar el poder de Einstein Bots en cualquier canal digital. En Summer '22, pusimos a disposición Java SDK y Channel Connector de código abierto para simplificar la experiencia del desarrollador de bots. Esto le brinda las herramientas que necesita para integrar fácilmente Einstein Bots en cualquiera de sus canales de conversación además de los canales de participación digital existentes que son compatibles con Service Cloud.

En esta publicación, veremos cómo puede usar la API de la plataforma Einstein Bots, y también cubriremos cómo usar el SDK y sus beneficios. Consulte esta publicación de blog anterior para familiarizarse aún más con laAPI de la plataforma Einstein Bots .

Uso de la API de la plataforma Einstein Bots

La API de la plataforma Einstein Bots es una API REST y puede usarla sin el SDK. La Guía del cliente de la API de la plataforma Einstein Bots proporciona instrucciones sobre cómo integrar Einstein Bots con su canal mediante CURL o Postman. Veamos el código Java real necesario para trabajar con la API de la plataforma Einstein Bots.

1. Cree el token web JSON (JWT)

Los Bots de Einstein requieren que las solicitudes se autentiquen mediante OAuth. Se puede usar cualquier flujo de OAuth para obtener el token de acceso. Dado que se trata de una integración de servicio a servicio, utilizaremos el flujo OAuth del portador JWT para acuñar el JWT y obtener el token de acceso OAuth. Use su clave privada que creó en la configuración de su aplicación conectada para crear el algoritmo para firmar el JWT.

 Archivo f = nuevo archivo (archivo de clave privada);
DataInputStream dis = new DataInputStream(new FileInputStream(f));
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
revelar(); PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privateKey = kf.generatePrivate(spec); Map<String, Object> headers = new HashMap<String, Object>();
headers.put("alg", "RS256");
Algoritmo algoritmo = Algorithm.RSA256(null, (RSAPrivateKey) privateKey);

Luego, cree el JWT con los valores apropiados.

 Instantáneo ahora = Instantáneo. ahora ();
Cadena jwt = JWT.create() .withHeader(encabezados) .withAudience(loginEndpoint) .withExpiresAt(Date.from(now.plus(jwtExpiryMinutes, ChronoUnit.MINUTES))) .withIssuer (identificación de la aplicación conectada) .withSubject (ID de usuario) .sign(algoritmo);

2. Obtenga el token de acceso de OAuth

Envíe una solicitud de publicación HTTP al extremo https://login.salesforce.com/ con services/oauth2/token en el jwt de la solicitud y utilizando los encabezados HTTP adecuados.

 // Crear datos de formulario de publicación Http.
MultiValueMap<String, String> formData= new LinkedMultiValueMap<>();
formData.add("grant_type", "urn:ietf:params:oauth:grant-type:jwt-bearer");
formData.add("afirmación", jwt); // Crear encabezados HTTP.
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // Crear solicitud HTTP.
HttpEntity<Mapa> oAuthHttpRequest = new HttpEntity<>(formData, httpHeaders); // Enviar solicitud al punto final de OAuth
ResponseEntity<String> respuesta = restTemplate .postForEntity(OAUTH_URL, oAuthHttpRequest, String.class);

Luego, analice la respuesta para obtener access_token :

 nodo ObjectNode = new ObjectMapper().readValue(response.getBody(), ObjectNode. class );
Token de cadena = node.get( "token_de_acceso" ).asText();

Ahora, tenemos el token requerido para la autenticación y estamos listos para realizar solicitudes a la API de la plataforma Einstein Bots.

3. Enviar una solicitud de inicio de sesión de chat

Envíe una solicitud de publicación HTTP al punto final https://<RUNTIME_BASE_URL>/ v5.0.0/bots/{botId}/sessions con el token de autenticación y el orgId en los encabezados HTTP. El RUNTIME_BASE_URL se puede obtener de la página de descripción general del bot documentada en la guía del cliente .

 // Crear encabezados HTTP
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setBearerAuth(token);
requestHeaders.add("X-Org-Id", orgId); Mensaje de cadena = "Hola"; // Crear cuerpo de solicitud en formato TextMessage definido en Schema. // Estamos usando la concatenación de cadenas aquí solo por simplicidad.
// Es probable que cree clases de DTO que puedan ayudar
// con serialización/deserialización JSON en código de producción real.
Cadena de cuerpo de solicitud = "{norte" + " "clave de sesión externa": "" + UUID.UUID aleatorio().toString + "",n" + " "mensaje": {n" + " "texto": "" + mensaje + ""n" + "}, n" + " "forceConfig": {n" + " "punto final": "" + forceConfigEndPoint + ""n" + "}n" + "}"; // Crear solicitud HTTP
HttpEntity<String> httpRequest = new HttpEntity<>(requestBody, requestHeaders); // Crear URL con formato URI v5.0.0/bots/{botId}/sessions
URL de cadena = RUNTIME_BASE_URL + "/v5.0.0/bots/" + ID de bot + "/sesiones" ; // Enviar solicitud de inicio de sesión de chat
ResponseEntity<String> startSessionResponse = restTemplate .postForEntity(url, httpRequest, String.class);

Puede analizar la respuesta para mostrar el mensaje del bot al usuario según el canal. Para este ejemplo, solo enviaremos a la consola, que se verá así:

 { "ID de sesión": "9168d0c9-bbe2-4be1-a1a1-8a3902921e87", "versiónbot": "0X9SB00000007cb0AA", "mensajes" : [ { "id": "c0a95f75-06b2-4269-b88d-c119e038781f", "calendario" : { "RespuestaDelayMilisegundos": 1200 }, "teclee el texto", "texto": "Hola," }, { "id": "d45cdaa8-b278-42d1-b954-53f4db9ea204", "calendario" : { "RespuestaDelayMilisegundos": 1200 }, "teclee el texto", "text" : "Soy un bot de demostración para la guía del usuario". }, { "id": "4c484926-c6c5-4944-b650-cce011b0f3b6", "calendario" : { "RespuestaDelayMilisegundos": 1200 }, "teclee el texto", "texto": "Elija una de las opciones a continuación" }, { "id": "d05f2b3a-2453-4acb-9c33-43774487c76c", "calendario" : { "RespuestaDelayMilisegundos": 1200 }, "tipo": "opciones", "widget": "menú", "opciones" : [ { "etiqueta": "Estado del pedido", "alias": "1", "id": "2319a485-5c5c-4c27-8239-abb8f7366ff6" }, { "etiqueta" : "Preguntas frecuentes", "alias": "2", "id": "664d72d9-2a54-477b-9f9b-da2d01c58552" }, { "etiqueta": "Transferir al agente", "alias": "3", "id": "dccd1287-8fc0-426f-ae0b-0a8b6a41b011" }, { "label": "Finalizar chat", "alias": "4", "id": "c359eaea-f981-49ba-a424-18b8b7572d20" } ] } ], "identificadores de secuencia procesada": [ 0 ], "_Enlaces" : { "sesión" : { "href": "https://runtime-api-na-west.stg.chatbots.sfdc.sh/v5.0.0/sessions/9168d0c9-bbe2-4be1-a1a1-8a3902921e87" }, "uno mismo" : { "href": "https://runtime-api-na-west.stg.chatbots.sfdc.sh/v5.0.0/bots/0XxSB00000007UX0AY/sessions" }, "mensajes" : { "href": "https://runtime-api-na-west.stg.chatbots.sfdc.sh/v5.0.0/sessions/9168d0c9-bbe2-4be1-a1a1-8a3902921e87/messages" } }
}

A continuación, necesitaremos extraer el sessionId de sesión de la respuesta para continuar enviando mensajes a la misma sesión.

 // Imprime el cuerpo de la respuesta que tiene una respuesta de Chatbot.
System.out.println("Respuesta de inicio de sesión de Bot: " + startSessionResponse.getBody()); // Obtenga SessionId de Response para enviar un mensaje a la sesión de chat existente.
JsonNode responseNode = asignador .readValue(startSessionResponse.getBody(), JsonNode. class ); String sessionId = responseNode.get( "sessionId" ).asText();

Como puede ver, se requiere una gran cantidad de código repetitivo para usar la API de Einstein Bots Platform directamente. Para simplificar la integración y reducir gran parte del código repetitivo, creamos un SDK de Einstein Bots para Java .

Uso del SDK de Java para simplificar una integración de Bots de Einstein

El SDK es un contenedor de la API de la plataforma Einstein Bots que simplifica la integración al proporcionar características adicionales, como soporte de autorización y administración de sesiones. Veamos un poco de código para implementar el mismo ejemplo usando el SDK de Bots de Einstein.

1. Agregar una dependencia POM

Encuentre la última versión de einstein-bot-sdk-java de Maven Central y agregue esta dependencia a su pom.xml .

 <dependencia> <groupId>com.salesforce.einsteinbot</groupId> <artifactId>einstein-bot-sdk-java</artifactId> <versión>${einstein-bot-sdk-java-versión}</versión>
</dependencia>

2. Crear un cliente de chatbot

El cliente de chatbot proporciona JwtBearerFlow para OAuth, así que cree AuthMechanism con los parámetros apropiados. Luego, cree BasicChatbotClient con el mecanismo de autenticación y basePath de la URL de tiempo de ejecución de Bot.

 //Crear mecanismo de autenticación JwtBearer.
Mecanismo de autenticación oAuth = JwtBearerOAuth.with() .privateKeyFilePath(privateKeyFilePath) .loginEndpoint(loginEndpoint) .connectedAppId(conectadoAppId) .connectedAppSecret(secreto) .userId(usuarioId) .construir(); //Crear cliente de chatbot básico
Cliente de BasicChatbotClient = ChatbotClients.basic() .basePath(basePath) .authMechanism(oAuth) .construir();

3. Enviar solicitud de inicio de sesión de chat

Primero, cree una RequestConfig con su botId , orgId y forceConfigEndPoint . Puede consultar la guía del cliente para encontrar estos valores. Por lo general, desea crear una configuración una vez por bot en su organización y reutilizarla para cada solicitud.

 //Crear configuración de solicitud
RequestConfig config = RequestConfig.with() .botId(botId) .orgId(orgId) .forceConfigEndpoint(forceConfigEndPoint) .construir();

Luego, crea una BotSendMessageRequest con TextMessage .

 // Podemos usar clases Java tipadas estáticamente para el cuerpo de la solicitud.
Mensaje AnyRequestMessage = nuevo TextMessage() .text("Hola") .type(TextMessage.TypeEnum.TEXT) .sequenceId(Sistema.currentTimeMillis()); BotSendMessageRequest botSendInitMessageRequest = BotRequest .withMessage(mensaje) .construir();

Utilice el método startChatSession para iniciar una sesión.

 ExternalSessionId externalSessionKey = nuevo ExternalSessionId(UUID. randomUUID ().toString()); BotResponse respuesta = cliente .startChatSession(config, externalSessionKey, botSendInitMessageRequest); // Obtener ID de sesión de la respuesta. String sessionId = resp.getResponseEnvelope().getSessionId();

Analice el sobre de respuesta y muestre el mensaje al usuario según el canal. El SDK deserializará automáticamente el JSON a un modelo Java para hacerlo más fácil. El siguiente código muestra cómo analizar la respuesta como texto para los tipos TextResponseMessage y ChoiceResponseMessage . Para todos los tipos y códigos admitidos, consulte el esquema .

 List<AnyResponseMessage> mensajes = resp.getResponseEnvelope().getMessages();
StringBuilder sb = nuevo StringBuilder();
for(AnyResponseMessage mensaje: mensajes){ if (instancia de mensaje de TextResponseMessage){ sb.append(((TextResponseMessage) mensaje).getText()) .append("n"); }else if (instancia de mensaje de ChoicesResponseMessage){ List<ChoicesResponseMessageChoices> opciones = ((ChoicesResponseMessage) mensaje) .obtenerOpciones(); para (ChoicesResponseMessageChoices opción: opciones){ sb.append(elección.getAlias()) .adjuntar(".") .append(elección.getLabel()) .append("n"); } } //Maneje de manera similar otros tipos de mensajes de respuesta.
}
Cadena de respuestaMessageAsText = sb.toString();
System.out.println(responseMessageAsText);

La salida se verá así:

 Hola,
Soy un bot de demostración para la guía del usuario.
Elija una de las opciones a continuación
1.Estado del pedido
2.Preguntas frecuentes
3. Transferir al agente
4.Finalizar chat

Tenemos diferentes extremos de la API de la plataforma Einstein Bots para continuar una sesión existente y finalizar una sesión de chat. Para completar, veamos ejemplos de código para ellos.

4. Enviar un mensaje a una sesión de chat existente

El código de ejemplo muestra cómo usar el método sendMessage para enviar un mensaje a una sesión de chat abierta existente.

 // SDK también proporciona métodos de utilidad para crear un mensaje de texto.
// Digamos que queremos responder a la opción del menú con "Estado del pedido".
AnyRequestMessage userInputMessage = RequestFactory . buildTextMessage ( "Estado del pedido" ); // Crear solicitud de envío de mensaje de bot con el mensaje de respuesta del usuario. BotSendMessageRequest botSendMessageRequest = BotRequest .withMessage(mensaje de entrada de usuario) .construir(); //Cree RuntimeSessionId con sessionId que obtuvo al iniciar la sesión de chat Response. RuntimeSessionId runtimeSessionId = new RuntimeSessionId(sessionId); // Enviar un mensaje a la sesión existente con sessionId
BotResponse textMsgResponse = cliente .sendMessage(config, runtimeSessionId, botSendMessageRequest); System.out.println("Respuesta de mensaje de texto:" + textMsgResponse);

Usamos TextMessage en este ejemplo, pero también puede enviar otros tipos (p. ej., ChoiceMessage ) admitidos por Einstein Bot Runtime Open API Schema .

5. Terminar una sesión de chat

Finalmente, aquí hay un código de ejemplo para finalizar la sesión usando el método endChatSession .

 // Solicitud de mensaje de finalización de sesión del bot de compilación
BotEndSessionRequest botEndSessionRequest = BotRequest .withEndSession(EndSessionRason.USERREQUEST).build(); //Cree RuntimeSessionId con sessionId que obtuvo al iniciar la sesión de chat Response.
RuntimeSessionId runtimeSessionId = new RuntimeSessionId(sessionId); // Enviar solicitud para finalizar la sesión de chat
BotResponse endSessionResponse = cliente .endChatSession(config, runtimeSessionId, botEndSessionRequest); System.out.println("Respuesta de finalización de sesión:" + endSessionResponse);

Beneficios de usar el SDK de Bots de Einstein

El SDK de Bots de Einstein proporciona muchas características excelentes que pueden ahorrar tiempo a los desarrolladores.

  • Abstrae los detalles de la carga de la clave privada y la acuñación de JWT.
  • Abstrae el intercambio de tokens para obtener el token de acceso OAuth.
  • Proporciona clases modelo con verificación de tipo estricta.
    • No tiene que usar la serialización/deserialización de cadenas JSON complicadas de cuerpos de solicitud/respuesta.
    • Usamos TextMessage en este ejemplo. Del mismo modo, las clases de modelo están disponibles para todos los objetos de esquema definidos en Bot Runtime Open API Schema .
  • El código es más legible debido a los métodos similares a dsl.
  • Si usa BasicChatbotClient demostrado en el blog, deberá realizar un seguimiento de las sesiones y llamar al método startChatSession o sendMessage de manera adecuada. En su lugar, use SessionManagedChatbotClient , que elimina el método startChatSession . Creará automáticamente una nueva sesión basada en el ExternalSessionId proporcionado por el usuario. Publicaremos una publicación de blog de seguimiento sobre el uso de SessionManagedChatbotClient .

Y hay más: el marco Channel Connector

Además del SDK de Bots de Einstein, también lanzamos el marco Conector de canal de Bots de Einstein para simplificar la creación de un servicio de conector de canal mediante Spring Boot. Configura automáticamente los beans de Spring para los servicios básicos, como el almacenamiento en caché, la autenticación y las métricas, y lo prepara para su uso inmediato.

El marco del conector de canal incluye una aplicación de ejemplo de trabajo y un arquetipo experto para crear una nueva aplicación de conector de canal de bot.

La siguiente imagen resume las herramientas que estamos lanzando y los beneficios que brindan.

A dónde ir desde aquí?

Sobre el Autor

Rajasekar Elango es ingeniero de software principal en Salesforce y trabaja en la plataforma Einstein Bots. Puedes seguirlo en LinkedIn o Twitter .

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/05/integrate-einstein-bots-into-any-channel-using-the-new-sdk-and-framework.html

Categories
Developers Integrations Tutoriales de Salesforce

Novedades en Spring '22 para la API de Pardot ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Con el lanzamiento de Spring '22, muchas características nuevas ahora están disponibles en la API de Pardot. Desde nuevos objetos hasta nuevas capacidades, esta publicación de blog destacará cómo usarlos. Asegúrese de consultar la Documentación para desarrolladores de Salesforce para la API de Pardot para obtener más información.

Uno de los mayores cambios es que se han agregado muchos más objetos a la API de Pardot. Esto permite escribir integraciones más diversas de una manera más fácil. A continuación se muestra la lista de nuevos objetos agregados en Spring '22. ¡Esto eleva el número total de objetos en Pardot API v5 a 30!

  • Contenido dinámico
  • Variación de contenido dinámico
  • Correo electrónico
  • Plantilla de correo electrónico
  • Actividad externa
  • Controlador de formulario
  • Campo de controlador de formulario
  • Página de destino
  • Etapa del ciclo de vida
  • Lista de correo electrónico
  • Membresía de la lista
  • Oportunidad
  • Perspectiva
  • Visitante

Continúe leyendo para ver un ejemplo de algunas de las nuevas capacidades.

Asignación de prospectos a una lista

Se agregaron puntos finales de administración de listas a Pardot API v5, lo que permite recuperar prospectos relacionados con una lista, agregar un prospecto a una lista o eliminar el prospecto de una lista.

Los ejemplos a continuación ilustran el uso de puntos finales con Python 3; sin embargo, la API de Pardot usa métodos RESTful HTTP que puede usar cualquier lenguaje de programación o utilidad, como Postman o cURL. Para seguir los ejemplos, será necesario instalar la biblioteca Python Requests; consulte el sitio web de Solicitudes sobre instalación y uso.

La API de Pardot utiliza Salesforce OAuth para la autenticación y estos ejemplos asumen que Salesforce OAuth, incluida una aplicación conectada, ya está configurado. Consulte la Guía de autenticación dentro de la documentación de la API de Pardot para obtener instrucciones sobre cómo configurar la autenticación.

El objetivo de este ejemplo es agregar todos los prospectos con una dirección de correo electrónico dada a una lista con un nombre dado. Para que esto funcione, enviamos una solicitud al extremo de Consulta de prospecto y al extremo de Consulta de lista para encontrar los ID asociados con el correo electrónico y el nombre. A continuación, enviamos una solicitud al extremo de consulta de membresía de la lista para ver si el cliente potencial ya existe en la lista. Si el cliente potencial no está en la lista, enviamos una solicitud al extremo Crear membresía de la lista para agregar el cliente potencial a la lista.

Primero, debemos configurar algunas variables globales sobre nuestra aplicación conectada Salesforce y el usuario, para que podamos autenticarnos. La función auxiliar get_access_token llama a Salesforce OAuth para recuperar el token de acceso. Asegúrese de actualizar las variables globales con los valores de su cuenta y organización.

 solicitudes de importación
importar json pardot_host = 'pi.demo.pardot.com'
ID de cliente = '3MVG9My4SLBrZj220D3wrrRZXdCLWFFSWrK32_qK3fkeMLiJmS8hQiBS9L'
secreto del cliente = '5F419BF9EE64DBC7CB3E95966EDC1E548604D9CD51E4E36ED6C039'
nombre de usuario = 'email@email.com'
contraseña = 'secreto'
businessUnitId = '0UvB0000008i6XGIAY' # Autenticarse con Salesforce OAuth y recuperar un token de acceso
def get_access_token(): authData = { 'grant_type': 'contraseña', 'id_cliente': id_cliente, 'secret_cliente': secreto_cliente, 'nombre de usuario': nombre de usuario, 'contraseña': contraseña } r = solicitudes.post('https://login.salesforce.com/services/oauth2/token', data=authData) cuerpo = r.json() access_token = cuerpo['access_token'] devolver token_de_acceso

Una vez que tengamos un token de acceso, podemos comenzar a usar la API de Pardot para encontrar el ID del cliente potencial, que se usará más adelante para buscar y crear la lista de miembros. Según la configuración de la cuenta de Pardot, puede haber uno, varios o ningún cliente potencial con la dirección de correo electrónico proporcionada, por lo que este código utiliza una matriz para almacenar los ID de clientes potenciales.

 def find_prospects_by_email(access_token, email): prospect_ids = [] next_page_token = '' mientras que next_page_token no es Ninguno: params = { 'campos': 'id, correo electrónico' } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/prospects", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar prospectos' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para prospecto en cuerpo['valores']: si prospecto ['correo electrónico'] == correo electrónico: prospect_ids.append(cliente potencial['id']) next_page_token = cuerpo['nextPageToken'] si len(prospect_ids) == 0: print('Error al encontrar prospecto con correo electrónico' + str(correo electrónico)) salir(2) devolver prospect_ids

Tenga en cuenta que este código usa el parámetro nextPageToken , una nueva función en la versión 5 de la API de Pardot que simplifica el proceso de recuperación de más de una página de datos. El nextPageToken es más rápido que usar el offset , ya que el token de la página almacena información que se usa en los servidores para encontrar los registros correctos rápidamente.

Ahora que tenemos los ID de prospectos, necesitamos encontrar el ID de List. Este código también usa nextPageParameter para navegar eficientemente a través de las listas para encontrar uno con el nombre dado. ¡Todos los nuevos objetos en Pardot API v5 ofrecen el nextPageParameter !

 def find_list_id_by_name(access_token, nombre): next_page_token = '' mientras que next_page_token no es Ninguno: params = { 'campos': 'id, nombre, es dinámico' } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/lists", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar listas' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para la lista en el cuerpo ['valores']: si lista['nombre'] == nombre: si lista['esDinámico']: print('No se pueden agregar miembros a una lista dinámica') dejar de fumar (3) lista de retorno['id'] next_page_token = cuerpo['nextPageToken'] print('Error al encontrar la lista con el nombre' + str(nombre)) salir(2)

El Id. del cliente potencial y el Id. de la lista se pueden usar para determinar si el cliente potencial tiene una lista de miembros. De manera similar al código anterior, usaremos el punto final de consulta en Membresía de la lista para determinar si el cliente potencial ya está asignado a la lista.

 def find_list_membership_by_list_and_prospect(access_token, list_id, prospect_id): next_page_token = '' mientras que next_page_token no es Ninguno: parámetros = { 'campos': 'id,prospectId', 'listId': list_id } si len(next_page_token) > 0: params['nextPageToken'] = next_page_token encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.get(f"https://{pardot_host}/api/v5/objects/list-memberships", params=params, headers=headers) si r.status_code != 200: print('Error al recuperar miembros de la lista' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() para list_membership en body['values']: if list_membership['prospectId'] == prospect_id: volver list_membership['id'] next_page_token = cuerpo['nextPageToken'] volver Ninguno

Para finalizar la tarea de agregar el cliente potencial a la lista, podemos vincular todas las funciones anteriores para crear la membresía de la lista si no se encuentra.

 def create_list_membership(access_token, list_id, prospect_id): parámetros = {'campos': 'id'} datos = { 'prospectId': prospect_id, 'listId': list_id } encabezados = { 'Autorización': 'Portador' + access_token, 'Pardot-Business-Unit-Id': businessUnitId } r = solicitudes.post(f"https://{pardot_host}/api/v5/objects/list-memberships", params=params, json=data, headers=headers) si r.status_code != 201: print('Error al crear la membresía de la lista' + str(r.status_code) + 'n' + str(r.content)) dejar de fumar (1) cuerpo = r.json() devolver cuerpo['id'] token_de_acceso = obtener_token_de_acceso()
prospect_ids = find_prospects_by_email(access_token, 'codey@salesforce.com')
list_id = find_list_id_by_name(access_token, 'Pioneros')
para prospect_id en prospect_ids: list_membership_id = find_list_membership_by_list_and_prospect(access_token, list_id, prospect_id) si list_membership_id no es Ninguno: print('La membresía de la lista ya existe para el cliente potencial' + str(prospect_id)) demás: list_membership_id = create_list_membership(access_token, list_id, prospect_id) print('Creado nuevo prospecto de membresía de lista ' + str(prospect_id) + ': ' + str(list_membership_id))

Cuando ejecutamos este código, todos los prospectos asociados con el correo electrónico "codey@salesforce.com" se asignarán a la lista de "Trailblazers". Si no se encuentran prospectos o la lista no existe, se devuelve un error.

Conclusión

Con la disponibilidad general de Spring '22, muchos objetos y capacidades nuevos ahora están disponibles en la API de Pardot. Los ejemplos anteriores demuestran la facilidad con la que se pueden recuperar y procesar los datos utilizando los nuevos puntos finales en la API de Pardot. Asegúrese de consultar la Documentación para desarrolladores de Salesforce para la API de Pardot para ver otras cosas excelentes que se pueden lograr con la API de Pardot.

Sobre el Autor

Jared Pearson es ingeniero en Salesforce. Ha estado ayudando a los clientes a utilizar las tecnologías de Salesforce para crear funciones interesantes durante más de 10 años.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/03/whats-new-in-spring-22-for-the-pardot-api.html

Categories
Developers Tutoriales de Salesforce Uncategorized

Explore la API de Pardot v5 con Postman ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Las API de Pardot le permiten ampliar sus esfuerzos de automatización de marketing con integraciones. Postman es una plataforma de API que facilita la creación, prueba y experimentación con llamadas a API. Puede usar Pardot y Postman juntos para probar y explorar fácilmente todo lo que la v5 de la API de Pardot tiene para ofrecer.

En la plataforma Postman, una Colección Postman es un grupo de solicitudes que se guardan y organizan en carpetas. Nuestra colección incluye llamadas a los 15 objetos en v5 de la API de Pardot.

Esta publicación de blog se centra en la colección pública de Pardot, por lo que si aún no está utilizando Postman con la API de Salesforce, consulte la publicación de blog Explore las API de Salesforce con una colección de Postman para obtener más información. Si nunca ha utilizado un cliente API y se siente abrumado, consulte el módulo Postman API Client Trailhead para obtener experiencia práctica y ganar confianza.

Solo una nota rápida antes de comenzar: esta colección se proporciona tal cual. Salesforce no lo admite oficialmente ni está cubierto por SLA.

Empezando con Postman

Antes de comenzar, necesita un nombre de usuario y contraseña de Salesforce, un ID de unidad de negocio de Pardot y el ID de consumidor y el secreto del consumidor para una aplicación conectada con el alcance de Access Pardot Services. Para obtener más ayuda, consulte la guía Introducción a las API de Pardot en los documentos para desarrolladores de Pardot.

A continuación, instale Postman e importe la colección Pardot siguiendo las instrucciones de nuestro proyecto Github .

Finalmente, está listo para configurar la autorización; La autorización de la colección usa variables con OAuth 2.0.

En la pestaña de la carpeta de la colección, haga clic en Variables y agregue su información a la columna Valor actual. Nota: grant_type, sf_username y sf_password solo son necesarios si elige usar el flujo de nombre de usuario / contraseña OAuth2.0.

Una vez que haya configurado sus variables, haga clic en la pestaña Autorización , desplácese hasta la parte inferior y haga clic en Obtener nuevo token de acceso . Siga las instrucciones para autorizar.

Hemos agregado documentación sólida a la colección para asegurarnos de que pueda encontrar lo que necesita. Por lo tanto, cada vez que se quede atascado, simplemente abra el panel Documentación para despegarlo.

Realizar una solicitud a la API de Pardot

Una vez que haya autorizado, comience a experimentar con la realización de solicitudes a la API de Pardot. Para este ejemplo, consultemos el objeto Campañas.

Abra la carpeta Campaña y luego haga clic en Consulta .

Configure los parámetros para su consulta y haga clic en Enviar .

Si la solicitud se realiza correctamente, verá una respuesta en la mitad inferior de la página.

Conclusión

Ahora que ha visto los conceptos básicos, salga y comience a usar Postman para que trabajar con la API de Pardot sea más fácil que nunca. Además, asegúrese de consultar los documentos para desarrolladores de Pardot para aprovechar al máximo el trabajo con Pardot.

Sobre el Autor

Casey Smith es redactor técnico de personal de Salesforce.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/10/explore-the-pardot-api-v5-using-postman.html

Categories
Developers Enterprise Software Tutoriales de Salesforce

Aprender MOAR con Spring ’21: OpenAPI 3.0 Spec for REST API

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores, consultores, administradores y arquitectos de Salesforce para toda Iberoamérica.

El enlace a la publicación original, lo encontrarás al final de este artículo.

Salesforce ofrece cientos de API REST y SOAP bien documentadas que pueden ayudarle con todas sus necesidades de integración. Aunque la documentación y la colección de APIs de Postman le ayudan a explorar estas APIs, deben estar documentadas en un formato comprensible para el sistema para que los sistemas externos las consuman rápidamente. En esta entrada del blog, hablaremos de una nueva función que le permitirá integrar rápidamente Salesforce a un sistema externo.

Especificaciones de la API

Una especificación describe lo que puede hacer una API, cómo consumirla, los parámetros, los métodos de autenticación que acepta y lo que se puede esperar como respuesta en forma de formato legible para humanos y máquinas. El estándar de la industria para la especificación de la API SOAP es WSDL, y la especificación de la API REST es OpenAPI u OAS (anteriormente conocido como Swagger). La última versión de OAS es la 3.0 (OAS3).

Estas especificaciones son fácilmente consumidas por sistemas externos, herramientas, clientes API o librerías codegen acelerando el tiempo de comercialización de una solución impulsada por API. Este es el principio en el que se basa el asistente de servicios externos de Salesforce, que le ayuda a integrarse con sistemas de terceros más rápidamente al permitirle importar sus especificaciones de API.

Salesforce puede generar especificaciones SOAP en forma de archivo WSDL adaptado a su organización. En cuanto a las especificaciones REST, disponemos de especificaciones OAS3 para APIs como Apis REST de Einstein Vision y Language, pero nada para la plataforma principal, por lo que hemos puesto a prueba la capacidad de generar una especificación OAS3 para las APIs REST de Salesforce.

Especificación OpenAPI 3.0 para recursos REST de sObjects (Piloto)

Empezamos este viaje en el invierno ’21 produciendo especificaciones «estándar» para la API REST de sObjects. En la primavera del 21 estamos mejorando esto dándole un punto final que le permite descargar una especificación que refleja los puntos finales únicos de su organización y las personalizaciones de los objetos.

La especificación generada describe los siguientes recursos sObject:

  • /sobjects
  • /sobjects/{sObjectName}
  • /sobjects/{sObjectName}/{Id}
  • /sobjects/{sObjectName}/describe

A continuación se muestra un ejemplo de especificación. Contiene algo de información básica sobre la API, la URL base de la org, los mecanismos de Auth que soporta, y enumera diferentes rutas. Cada ruta es un punto final de la API REST de sObjects, y hay diferentes rutas para diferentes objetos en la organización. Dado que la especificación refleja las personalizaciones de tu org, puedes ver rutas dedicadas para tus objetos personalizados también. Por ejemplo, esta especificación tiene una ruta "/sobjects/Product__c" para el objeto personalizado Product__c.

{ "openapi": "3.0.1", "info": { "title": "Lightning Platform REST API", "description": "La API REST proporciona una potente, cómoda y sencilla API de servicios web para interactuar con Lightning Platform...", "versión": "51.0" }, "servidores": [ { "url": "https://mydomain.salesforce.com/services/data/v51.0" } ], "componentes": { "securitySchemes": { "openIDConnectDiscovery": { ... }, "bearerAuth": { ... }, "oAuth2": { ... } } }, "caminos": { "/objetos": { ... }, "/objetos/Cuenta": { ... }, "/objetos/Cuenta/{id}":{ ... }, "/objetos/Producto__c": { ... } ... }
}

Vea la demoIntegre con la API REST de Salesforce utilizando OpenAPI 3 de DreamTX para profundizar en cómo generar la especificación y consumirla en Postman. Vea la sesión Vea el futuro de las API en Salesforce del Developer Track en DreamTX para ver cómo la nueva especificación OAS3 puede simplificar el proceso de integración de Salesforce con una aplicación de código abierto Lightning Web Components que utiliza Node.js como backend.

Lo que sigue

Si desea participar en el piloto «OpenAPI 3.0 Spec for sObjects REST Resources», póngase en contacto con su ejecutivo de cuentas de Salesforce o abra un caso de asistencia. Sus comentarios son muy importantes para nosotros, para que podamos ofrecerle la mejor experiencia de desarrollo posible.

Además, antes de que salga Summer ’21, no olvide actualizar sus integraciones para utilizar versiones de API superiores a la 20.

Recursos

Sobre el autor

Aditya Naag Topalli es un 13x Certified Lead Developer Evangelist en Salesforce. Se centra en los componentes web Lightning, los servicios de la plataforma Einstein y las integraciones. Escribe contenido técnico y habla con frecuencia en seminarios web y conferencias en todo el mundo. Sígalo en Twitter @adityanaag y consulte sus contribuciones en GitHub.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/01/learn-moar-with-spring-21-openapi-3-0-spec-for-rest-api.html