Invocar las API de comunicaciones de AEM Forms mediante la autenticación de servidor a servidor OAuth
Esta guía proporciona instrucciones para configurar e invocar las API sincrónicas de comunicaciones de AEM Forms a las que se accede a través de Adobe Developer Console mediante la autenticación de servidor a servidor OAuth.
Requisitos previos
Para configurar un entorno para ejecutar y probar las API de comunicaciones de AEM Forms, asegúrese de que dispone de lo siguiente:
Actualizar el entorno de AEM as a Cloud Service
- Versión 2024.10.18459.20241031T210302Z o posterior de AEM
- Actualizar perfiles de producto si el entorno se ha creado antes de noviembre de 2024
Acceso y permisos
Asegúrese de tener los derechos de acceso y los permisos necesarios antes de empezar a configurar las API de comunicaciones.
Permisos de usuario y función
- Función de desarrollador asignada en Adobe Admin Console
- Permiso para crear proyectos en Adobe Developer Console
Acceso al repositorio Git
- Acceso al repositorio de Git de Cloud Manager
- Credenciales de Git para clonar y transferir cambios
Generar token de acceso mediante Adobe Developer Console (ADC)
- Genere un token de acceso a través de Adobe Developer Console mediante la autenticación de servidor a servidor OAuth.
- Recuperación del ID de cliente desde Adobe Developer Console
Herramientas de desarrollo
- Node.js para ejecutar aplicaciones de ejemplo
- Última versión de Git
- Acceso a Terminal/Línea de comandos
- Editor de texto o IDE para editar archivos de configuración (código VS, IntelliJ, etc.)
- Postman o una herramienta similar para las pruebas de API
Configuración de las API sincrónicas de AEM Forms Communications
Se accede a las API de comunicación de AEM Forms a través de Adobe Developer Console mediante la autenticación de servidor a servidor OAuth.
Siga los pasos para explicar cómo configurar las API sincrónicas de comunicación de Forms para generar PDF mediante la plantilla y el archivo XDP:
Paso 1: Acceso al entorno de AEM Cloud Service y al extremo de AEM Forms
Acceda a los detalles del entorno de AEM Cloud Service para obtener las direcciones URL y los identificadores necesarios para la configuración de la API.
1.1 Iniciar sesión en Adobe Cloud Manager
- Vaya a my.cloudmanager.adobe.com
- Inicie sesión con su Adobe ID
1.2 Vaya a la Descripción general del programa
Seleccione el programa en la lista. Se le redirigirá a la página Resumen del programa
1.3 Acceso y visualización del entorno de AEM Cloud Service
Puede ver o acceder a los detalles del entorno de AEM Cloud Service mediante cualquiera de las dos opciones:
-
En la página Resumen del programa
-
Haga clic en "Entornos" en el menú del lado izquierdo. Puede ver una lista de todos los entornos
-
Haga clic en el nombre de entorno específico para ver los detalles
-
En la página Resumen del programa
-
Busque la sección Entornos
-
Haga clic en "Mostrar todo" para ver todos los entornos
-
Haga clic en el menú de puntos suspensivos (…) que está junto al entorno
-
Seleccionar "Ver detalles"
1.4. Encontrar el punto final de AEM Forms
En la página de detalles de Entorno, observe su instancia de URL de AEM.
Paso 2: Clonar el repositorio de Git
Clone el repositorio Git de Cloud Manager para administrar sus archivos de configuración de API.
2.1 Busque la sección Repositorio
-
En la página Resumen del programa, haga clic en la ficha Repositorios
-
Busque el nombre del repositorio y haga clic en el menú de puntos suspensivos (…).
-
Copiar la URL del repositorio
https://git.cloudmanager.adobe.com/<org>/<program>/2.2 Clonar usando el comando Git
-
Abra el símbolo del sistema o el terminal
-
Ejecute el comando
git clonepara clonar el repositorio Git.code language-bash git clone [repository-url]
Por ejemplo, para clonar el repositorio Git, ejecute el siguiente comando:
https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-pXXX-ukYYYY/
Para obtener más información sobre cómo integrar Adobe Cloud Manager y Adobe Cloud Manager, consulte Documentación de integración de Git.
Paso 3: Configuración del proyecto de Adobe Developer Console
3.1 Acceso a Adobe Developer Console
- Vaya a Adobe Developer Console
- Inicie sesión con su Adobe ID
- Cree un nuevo proyecto o vaya al proyecto existente
-
En la sección Inicio rápido, haga clic en Crear nuevo proyecto
-
Se crea un nuevo proyecto con un nombre predeterminado
-
Haga clic en Editar proyecto en la esquina superior derecha
-
Proporcione un nombre significativo (por ejemplo, "formsproject")
-
Haga clic en Guardar.
-
Haga clic en Todos los proyectos desde Adobe Developer Console
-
Busque el proyecto y haga clic en para abrirlo.
3.2 Añadir API de comunicación de Forms
-
Haga clic en Agregar API
-
En el cuadro de diálogo Agregar API, filtrar por Experience Cloud
-
Seleccione "API de comunicación de Forms"
-
Haga clic en Siguiente
-
Seleccione el método de autenticación OAuth Server-to-Server
-
Haga clic en Siguiente
3.3 Añadir perfil de producto
-
Seleccione el perfil de producto que coincida con la dirección URL de la instancia de AEM (
https://Service Type -Environment Type-Program XXX-Environment XXX.adobeaemcloud.com). -
Haga clic en Guardar API configurada. La API y el perfil de producto se añaden al proyecto
-
Ver la sección Detalles de credenciales
Registrar credenciales de API
API Credentials:
================
Client ID: <your_client_id>
Client Secret: <your_client_secret>
Technical Account ID: <tech_account_id>
Organization ID: <org_id>
Scopes: AdobeID,openid,read_organizations
3.4 Generación del acceso
Genere los tokens de acceso manualmente en Adobe Developer Console:
-
Haga clic en el botón "Generar token de acceso" en la sección de API del proyecto
-
Copiar el token de acceso generado
| note note |
|---|
| NOTE |
| El token de acceso es válido solamente por 24 horas |
Generar tokens mediante programación usando la API Adobe IMS:
Credenciales requeridas:
- ID del cliente
- Secreto de cliente
- Ámbitos (normalmente:
openid, AdobeID, read_organizations, additional_info.projectedProductContext, read_pc.dma_aem_cloud, aem.document)
Extremo de token:
| code language-none |
|---|
|
Solicitud de ejemplo (curl):
| code language-bash |
|---|
|
Respuesta:
| code language-json |
|---|
|
Ahora puede utilizar el token de acceso generado para hacer una llamada de API a entornos de desarrollo, fase o producción.
Paso 4: Registro del ID de cliente con el entorno de AEM
Para permitir que el ID de cliente del proyecto ADC se comunique con la instancia de AEM, debe registrarla con un archivo de configuración YAML e implementarla mediante una canalización de configuración.
4.1 Localizar o crear directorio de configuración
-
Vaya al repositorio clonado de AEM Project y busque la carpeta
config -
Si no existe, créela en el nivel raíz del proyecto:
code language-bash mkdir config -
Cree un nuevo archivo con el nombre
api.yamlen el directorioconfig:code language-bash touch config/api.yaml -
Agregue el siguiente código al archivo
api.yaml:code language-yaml kind: "API" version: "1" metadata: envTypes: ["dev"] # or ["prod", "stage"] for production environments data: allowedClientIDs: author: - "<your_client_id>" publish: - "<your_client_id>" preview: - "<your_client_id>"
A continuación se explican los parámetros de configuración:
-
kind: siempre se establece en
"API"(lo identifica como una configuración de API) -
versión: versión de API, normalmente
"1"o"1.0" -
envTypes: matriz de tipos de entorno donde se aplica esta configuración
["dev"]: solo entornos de desarrollo["stage"]: solo entornos de ensayo["prod"]- Solo entornos de producción
-
allowedClientID: Los ID de cliente pueden acceder a su instancia de AEM
- author: ID de cliente para el nivel de author
- publicar: ID de cliente para el nivel de publicación
- vista previa: ID de cliente para el nivel de vista previa
4.2 Confirmar y enviar cambios
-
Vaya a la carpeta raíz del repositorio clonado y ejecute los siguientes comandos:
code language-bash git add config/api.yaml git commit -m "Whitelist client id for api invocation" git push origin <your-branch>
Paso 5: Configuración de la canalización
5.1 Iniciar sesión en Adobe Cloud Manager
- Vaya a my.cloudmanager.adobe.com
- Inicie sesión con su Adobe ID
5.1 Localización de la tarjeta Canalizaciones
-
Busque la tarjeta Canalizaciones en la página Información general del programa
-
Haga clic en el botón "Agregar"
5.2 Seleccionar tipo de canalización
-
Para Entornos De Desarrollo: Seleccione "Agregar Canalización Que No Sea De Producción". Las canalizaciones que no son de producción son para entornos de desarrollo y ensayo
-
Para Entornos De Producción: Seleccione "Agregar Canalización De Producción". Las canalizaciones de producción requieren aprobaciones adicionales
1. Configurar canalización: ficha Configuración
En la ficha Configuración:
a. Tipo de canalización
- Seleccionar "Canalización de implementación"
b. Nombre de canalización
- Proporcione un nombre descriptivo. Por ejemplo, asigne a la canalización el nombre
api-config-pipieline
c. Déclencheur de implementación
- Manual: Implementar solo cuando se activa manualmente (recomendado para la configuración inicial)
- Cambios en Git: Implementar automáticamente cuando los cambios se inserten en la rama
d. Comportamiento de errores de métricas importantes
- Preguntar cada vez: Pedir acción si se producen errores (predeterminado)
- Error inmediato: Error automático de canalización en caso de errores de métricas
- Continuar inmediatamente: Continuar a pesar de los errores
e. Haga clic en "Continuar" para continuar con la ficha Código Source
2. Configurar canalización: ficha Código Source
En la ficha Código Source:
a. Tipo de implementación
- Seleccione "Implementación de destino"
b. Opciones de implementación
- Seleccione "Config" (implementar solo archivos de configuración). Indica a Cloud Manager que se trata de una implementación de configuración.
c. Seleccionar entorno de implementación elegible
- Elija el entorno en el que desea implementar la configuración. En este caso, es un entorno
dev.
d. Definir detalles de código Source
- Repositorio: seleccione el repositorio que contiene el archivo
api.yaml. Por ejemplo, seleccione el repositorioAEMFormsInternal-ReleaseSanity-pXXXXX-ukYYYYY. - Rama Git: Seleccione su rama. Por ejemplo, en este caso nuestro código se implementa en la rama
main. - Ubicación del código: escriba la ruta de acceso al directorio
config. Comoapi.yamlse encuentra en la carpetaconfigen la raíz, escriba/config
e. Haga clic en "Guardar" para crear la canalización
Paso 6: Implementar la configuración
Ahora que se ha creado la canalización, implemente la configuración de api.yaml
6.1 Desde la información general de las canalizaciones
- En la página Información general del programa, busque la tarjeta Canalizaciones
- Vaya a la canalización de configuración recién creada en la lista. Por ejemplo, busque el nombre de la canalización que ha creado (por ejemplo, "api-config-pipeline"). Puede ver los detalles de la canalización, incluido el estado y la última ejecución.
6.2 Iniciar la implementación**
- Haga clic en el botón "Generar" (o en el icono de reproducción ▶) que se encuentra junto a la canalización
- Confirme la implementación si se le solicita y comienza la ejecución de la canalización
6.3 Verificar la implementación correcta
-
Espere a que se complete la canalización.
-
Si tiene éxito, el estado cambia a "Correcto" (marca de verificación verde ✓).
-
Si falla, el estado cambia a "Fail" (Cruz roja ✗). Haga clic en Descargar registros para ver los detalles del error.
-
Ahora puede empezar a probar las API de comunicaciones de Forms. Para realizar pruebas, puede utilizar Postman, curl o cualquier otro cliente REST para invocar las API.
Paso 7: Especificaciones y pruebas de la API
Ahora que su entorno está configurado, puede empezar a probar las API de comunicación de AEM Forms mediante la interfaz de usuario de Swagger o mediante programación desarrollando la aplicación NodeJS.
La interfaz de usuario de Swagger proporciona una interfaz interactiva para probar las API sin escribir código. Use la característica Probarla para invocar y probar la API de comunicación de Forms generate PDF.
-
Vaya a Referencia de la API de comunicación de Forms y abra la documentación de la API de comunicación de Forms en su explorador.
-
Expanda la sección Generación de documentos y seleccione Genera un formulario PDF que se puede rellenar a partir de una plantilla XDP o PDF, opcionalmente con la combinación de datos.
-
En el panel derecho, haga clic en Probar.
-
Introduzca los siguientes valores:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Sección Parámetro Valor cubo Instancia de AEM Nombre de instancia de AEM sin el nombre de dominio de Adobe ( .adobeaemcloud.com). Por ejemplo, usepXXXXX-eYYYYYcomo contenedor.Seguridad Token de portador Utilice el token de acceso de la credencial de servidor a servidor OAuth del proyecto de Adobe Developer Console Cuerpo plantilla Cargue un XDP para generar el formulario de PDF. Por ejemplo, puede usar este XDP para generar un PDF. Cuerpo data Un archivo XML opcional que contiene los datos que se van a combinar con la plantilla para generar un formulario PDF rellenado previamente. Por ejemplo, puede usar este XML para generar un PDF. Parámetros X-Adobe-Accept-Experimental 1 -
Haga clic en Enviar para invocar la API
-
Compruebe la respuesta en la ficha Respuesta:
- Si el código de respuesta es
200, significa que PDF se ha creado correctamente. - Si el código de respuesta es
400, significa que los parámetros de la solicitud no son válidos o tienen un formato incorrecto. - Si el código de respuesta es
500, significa que hay un error interno del servidor. - Si el código de respuesta es
403, significa que hay un error de autorización.
En este caso, el código de respuesta es
200, lo que significa que PDF se ha generado correctamente:
Ahora puedes descargar el PDF creado con el botón Descargar y verlo en el visor de PDF:
note note NOTE Para hacer pruebas, también puede usar Postman, curl o cualquier otro cliente REST para invocar las API de AEM. - Si el código de respuesta es
Desarrolle una aplicación Node.js para generar un formulario PDF que se pueda rellenar a partir de una plantilla XDP y un archivo de datos XML mediante la API de servicios de documentos
Requisitos previos
- Node.js instalado en el sistema
- Instancia de AEM as a Cloud Service activa
- Token de portador para la autenticación de API desde Adobe Developer Console
- Archivo XDP de muestra: ClosingForm.xdp
- Archivo XML de ejemplo: ClosingForm.xml
Para desarrollar la aplicación Node.js, siga el desarrollo paso a paso:
Paso 1: Crear un nuevo proyecto de Node.js
Abra cmd/terminal y ejecute los siguientes comandos:
| code language-bash |
|---|
|
Paso 2: Instalar Dependencias Necesarias
Instale las bibliotecas node-fetch, dotenv y form-data para realizar solicitudes HTTP, leer variables de entorno y administrar datos de formulario respectivamente.
| code language-bash |
|---|
|
Paso 3: actualizar package.json
-
Abra cmd/terminal y ejecute el comando:
code language-bash code .
Se abre el proyecto en el editor de código.
-
Actualice el archivo
package.jsonpara agregartypeamodule.code language-bash { "name": "demo-nodejs-generate-pdf", "version": "1.0.0", "type": "module", "main": "index.js", }
Paso 4: Crear un archivo .env
-
Crear archivo .env en el nivel raíz de un proyecto
-
Agregue la siguiente configuración y reemplace los marcadores de posición con los valores reales de la credencial de servidor a servidor OAuth del proyecto ADC.
code language-bash CLIENT_ID=<ADC Project OAuth Server-to-Server credential ClientID> CLIENT_SECRET=<ADC Project OAuth Server-to-Server credential Client Secret> SCOPES=<ADC Project OAuth Server-to-Server credential Scopes>
note note NOTE Puede copiar CLIENT_ID,CLIENT_SECRETySCOPESdel proyecto de Adobe Developer Console.
Paso 5: Crear src/index.js
- Crear
index.jsarchivo en el nivel raíz del proyecto - Agregue el siguiente código y reemplace los marcadores de posición por los valores reales:
| code language-javascript |
|---|
|
Paso 6: Ejecute la aplicación
| code language-bash |
|---|
|
El PDF se crea en la carpeta demo-nodejs-generate-pdf. Vaya a la carpeta para buscar el archivo generado denominado generatedForm.pdf.
Puede abrir el PDF generado para verlo.
Resolución de problemas
Problemas comunes y posibles causas
Problema 1: Error 403 prohibido
Síntomas:
- Las solicitudes de API devuelven
403 Forbidden - Mensaje de error: Acceso no autorizado
Causa posible:
- El ID de cliente no se ha registrado en la configuración
api.yamlde la instancia de AEM
Problema 2: Error 401 no autorizado
Síntomas:
- Las solicitudes de API devuelven
401 Unauthorized - Mensaje de error: Token inválido o caducado
Posibles causas:
- Token de acceso caducado (solo válido durante 24 horas)
- ID de cliente y secreto de cliente incorrectos o no coincidentes
Problema 3: Error 404 Not Found
Síntomas:
- Las solicitudes de API devuelven
404 Not Found - Mensaje de error: No se encontró el recurso o no se encontró el extremo de la API 3}
Causa posible:
- Parámetro de bloque incorrecto (no coincide con el identificador de instancia de AEM)
Problema 4: Error de implementación de canalización
Síntomas:
- Error de ejecución de configuración de canalización
- Los registros de implementación muestran errores relacionados con
api.yaml
Posibles causas:
- Sintaxis YAML no válida (problemas de sangría, comillas o formato de matriz)
api.yamlse colocó en un directorio incorrecto- ID de cliente incorrecto o mal formado en la configuración
- Secreto de cliente no válido
Problema 5: Las API de comunicación de Forms no se pueden ejecutar
Síntomas:
- Las solicitudes de API devuelven errores que indican funciones no admitidas o no disponibles.
- La generación de PDF mediante XDP y XML no funciona.
- La implementación de la canalización se completa correctamente, pero las llamadas de API de tiempo de ejecución fallan.
Causa posible:
El entorno de AEM ejecuta una versión lanzada antes de que se introdujeran o admitieran las API de comunicación de Forms.
Para actualizar el entorno de AEM, consulte la sección Actualizar la instancia de AEM.
Actualizar instancia de AEM
Para actualizar la instancia de AEM para localizar los detalles del entorno:
-
Seleccione el icono
ellipsis(…) junto al nombre del entorno y haga clic en Actualizar -
Haga clic en el botón Enviar y ejecute la canalización de pila completa sugerida.