AEM Forms as a Cloud Service Communications Synchronous APIs Processing
Den här guiden innehåller omfattande anvisningar om hur du konfigurerar och använder AEM Forms Communications Synchronous API:er.
Lär dig hur du konfigurerar din AEM as a Cloud Service-miljö, aktiverar API-åtkomst och anropar kommunikations-API:er med OAuth Server-till-Server-autentisering.
Förutsättningar
Om du vill konfigurera en miljö för att köra och testa AEM Forms Communications API:er måste du ha följande:
Åtkomst och behörigheter
Kontrollera att du har de behörigheter och behörigheter som krävs innan du börjar konfigurera kommunikations-API:erna.
Användar- och rollbehörigheter
- Adobe ID skapat på https://account.adobe.com/
- Adobe ID som är kopplat till din organisations e-postadress
- Adobe Managed Services produktkontext tilldelad
- Utvecklarroll som tilldelats i Adobe Admin Console
- Behörighet att skapa projekt i Adobe Developer Console
Cloud Manager Access
- Inloggningsuppgifter för Cloud Manager
- Tillgång till att visa och hantera programmiljöer
- Behörighet att skapa och köra CI/CD-pipelines
- Tillgång till miljöinformation och konfiguration
Git-databasåtkomst
- Åtkomst till Cloud Manager Git-databas
- Git-inloggningsuppgifter för kloning och push-ändringar
Utvecklingsverktyg
- Node.js för att köra exempelprogram
- Senaste versionen av Git
- Åtkomst till Terminal-/kommandorad
- Textredigerare eller IDE för redigering av konfigurationsfiler (VS-kod, IntelliJ, osv.)
- Postman eller liknande verktyg för API-testning
Låt oss nu förstå varje steg i detalj.
Steg 1: Uppdatera AEM-instans
Så här uppdaterar du AEM-instansen:
-
Logga in på Adobe Cloud Manager
- Navigera till my.cloudmanager.adobe.com
- Logga in med din Adobe ID
-
Navigera till programöversikten
- Välj ditt program i listan. Du omdirigeras till sidan Programöversikt
-
Hitta miljöinformation
-
Markera ikonen
ellipsis(…) bredvid miljönamnet och klicka på Uppdatera -
Klicka på knappen Skicka och kör den föreslagna helstackspipelinen.
-
Steg 2: Klona Git-databas
Klona Cloud Manager Git-databasen för att hantera API-konfigurationsfilerna.
-
Leta reda på databasavsnittet
-
Klicka på fliken Databaser på sidan Programöversikt
-
Leta reda på databasnamnet och klicka på ellipsmenyn (…)
-
Kopiera databas-URL
note note NOTE URL-formatet är vanligtvis https://git.cloudmanager.adobe.com/<org>/<program>/
-
-
Klona med Git-kommandot
-
Öppna kommandotolken eller terminalen
-
Kör kommandot
git cloneför att klona Git-databasen.code language-bash git clone [repository-url]note note NOTE Använd inloggningsuppgifterna från Adobe Cloud Manager för att klona Git-databasen. Om du till exempel vill klona din Git-databas kör du följande kommando:
code language-bash https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-p43162-uk59167/
-
Integreringsalternativ för Git-databas
Adobe Cloud Manager har stöd för båda databasalternativen:
-
Direktanvändning av Cloud Manager Git-databas
- Använda Cloud Manager Git-databas
- Inbyggd integrering med rörledningar
-
Integrering med kundhanterad Git-databas
- Anslut din egen Git-databas (GitHub, GitLab, Bitbucket osv.)
- Konfigurera synkronisering med Adobe Cloud Manager
Mer information om hur du integrerar Adobe Cloud Manager och Adobe Cloud Manager finns i Git-integreringsdokumentation.
Steg 3: Få tillgång till AEM Cloud-tjänstmiljön och AEM Forms Endpoint
Få tillgång till informationen om AEM Cloud-tjänstmiljön för att få de URL:er och identifierare som behövs för API-konfigurationen.
-
Logga in på Adobe Cloud Manager
- Navigera till my.cloudmanager.adobe.com
- Logga in med din Adobe ID
-
Navigera till programöversikten
Välj ditt program i listan. Du omdirigeras till sidan Programöversikt -
Få åtkomst till och visa AEM Cloud-tjänstmiljön
Du kan visa eller komma åt informationen om AEM Cloud-tjänstmiljön med något av följande två alternativ:
-
Alternativ 1: Från översiktssida
-
På sidan Programöversikt
-
Klicka på "Miljöer" på den vänstra menyn. Du kan se en lista över alla miljöer
-
Klicka på det specifika miljönamnet för att visa information
-
-
Alternativ 2: Från miljöavsnitt
-
På sidan Programöversikt
-
Leta reda på avsnittet Miljöer
-
Klicka på "Visa alla" om du vill visa alla miljöer
-
Klicka på menyn ellips (…) bredvid miljön
-
Välj "Visa detaljer"
-
-
-
Hitta din AEM Forms-slutpunkt
Observera följande information på informationssidan för Miljö:
URL för författartjänst
- URL:
https://author-pXXXXX-eYYYYY.adobeaemcloud.com - Bucket: author-pXXX-YYYY
Exempel:https://author-p43162-e177398.adobeaemcloud.com
Publiceringstjänst-URL
- URL:
https://publish-pXXXXX-eYYYYY.adobeaemcloud.com - Bucket: publish-pXXX-YYYY
Exempel:https://publish-author-p43162-e177398.adobeaemcloud.com
- URL:
Steg 4: API-åtkomstkonfiguration
Så här konfigurerar du AEM Forms Communications API
4.1 Adobe Developer Console Project Setup
-
Öppna Adobe Developer Console
- Navigera till Adobe Developer Console
- Logga in med din Adobe ID
-
Skapa nytt projekt
-
Klicka på Skapa nytt projekt i avsnittet Snabbstart
-
Ett nytt projekt skapas med ett standardnamn
-
Klicka på Redigera projekt längst upp till höger
-
Ange ett beskrivande namn (t.ex. "formsproject")
-
Klicka på Spara
-
4.2 Lägga till API:er för Forms Communication
Du kan lägga till olika API:er för AEM Forms Communications beroende på dina behov.
A. För Document Services API:er
-
Klicka på Lägg till API
-
Välj Forms Communication API:er
- I dialogrutan Lägg till API kan du filtrera efter Experience Cloud
- Välj "Forms Communication APIs"
-
Välj autentiseringsmetoden OAuth Server-till-server
B. För API:er för Forms Runtime
-
Klicka på Lägg till API
- Klicka på knappen Lägg till API i ditt projekt
-
Välj AEM Forms-leverans- och körnings-API
- I dialogrutan Lägg till API kan du filtrera efter Experience Cloud
- Välj "AEM Forms Delivery and Runtime API"
- Klicka på Nästa
-
Autentiseringsmetod
- Välj autentiseringsmetoden OAuth Server-to-Server.
4.3 Lägg till produktprofil
Så här lägger du till produktprofilen:
-
Välj lämplig produktprofil utifrån den åtkomstnivå som krävs:
table 0-row-2 1-row-2 2-row-2 3-row-2 Åtkomsttyp Produktprofil Skrivskyddad åtkomst AEM Users - author - Program XXX - Environment XXXLäs-/skrivåtkomst AEM Assets Collaborator Users - author - Program XXX - Environment XXXFullständig administrativ åtkomst AEM Administrators - author - Program XXX - Environment XXX -
Välj den produktprofil som matchar URL:en för författartjänsten (
https://author-pXXXXX-eYYYYY.adobeaemcloud.com). Välj till exempelhttps://author-pXXXXX-eYYYYY.adobeaemcloud.com. -
Klicka på Spara konfigurerat API. API och produktprofil läggs till i ditt projekt
4.4 Generera och spara autentiseringsuppgifter
-
Få åtkomst till dina autentiseringsuppgifter
- Navigera till ditt projekt i Adobe Developer Console
- Klicka på autentiseringsuppgifter för OAuth Server-till-Server
- Visa avsnittet Information om autentiseringsuppgifter
-
Post-API-autentiseringsuppgifter
code language-text 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
4.5 Generering av åtkomsttoken
A. För testning
Generera åtkomsttoken manuellt i Adobe Developer Console:
-
Navigera till ditt projekt
- Öppna ditt projekt i Adobe Developer Console
- Klicka på OAuth Server-to-Server
-
Generera åtkomsttoken
- Klicka på knappen "Generera åtkomsttoken" i projektets API-avsnitt
- Kopiera genererad åtkomsttoken
note note NOTE Åtkomsttoken är giltig i 24 timmar
B. För produktion
Generera tokens programmatiskt med Adobe IMS API:
Nödvändiga autentiseringsuppgifter:
- Klient-ID
- Klienthemlighet
- Omfång (vanligtvis:
AdobeID,openid,read_organizations)
Tokenslutpunkt:
https://ims-na1.adobelogin.com/ims/token/v3
Exempelbegäran (url):
curl -X POST 'https://ims-na1.adobelogin.com/ims/token/v3' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials' \
-d 'client_id=<YOUR_CLIENT_ID>' \
-d 'client_secret=<YOUR_CLIENT_SECRET>' \
-d 'scope=AdobeID,openid,read_organizations'
Svar:
{
"access_token": "eyJhbGciOiJSUz...",
"token_type": "bearer",
"expires_in": 86399
}
4.6 Registrera klient-ID i AEM Environment
Om du vill att ditt ADC-projekts klient-ID ska kunna kommunicera med AEM-instansen måste du registrera den med en YAML-konfigurationsfil och distribuera den via en konfigurationspipeline.
-
Hitta eller skapa konfigurationskatalog
- Navigera till den klonade AEM Project-databasen och gå till mappen
config - Om den inte finns skapar du den på projektets rotnivå:
code language-bash mkdir config - Navigera till den klonade AEM Project-databasen och gå till mappen
-
Skapa en ny fil med namnet
api.yamli katalogenconfig:code language-bash touch config/api.yaml -
Lägg till följande kod i filen
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>"I följande exempel förklaras konfigurationsparametrarna:
-
sort: Alltid inställt på
"API"(identifierar detta som en API-konfiguration) -
version: API-version, vanligtvis
"1"eller"1.0" -
envTypes: Array med miljötyper där den här konfigurationen gäller
["dev"]- Endast utvecklingsmiljöer["stage"]- Endast mellanlagringsmiljöer["prod"]- endast produktionsmiljöer
-
allowedClientIDs: Klient-ID:n har åtkomst till din AEM-instans
- författare: Klient-ID för författarnivå
- publicera: Klient-ID för publiceringsskikt
- förhandsgranskning: Klient-ID för förhandsgranskningsnivå
Lägg till exempel till
allowedClientIDssom6bc4589785e246eda29a545d3ca55980och envTypes somdev:
-
-
Verkställ och skicka ändringar
- Navigera till rotmappen för den klonade databasen och kör kommandona nedan:
code language-bash git add config/api.yaml git commit -m "Whitelist client id for api invocation" git push origin <your-branch>
-
Konfigurera konfigurationspipeline
-
Logga in på Cloud Manager
- Navigera till my.cloudmanager.adobe.com
- Logga in med din Adobe ID
-
Navigera till ditt program
Välj ditt program i listan så dirigeras du till sidan Programöversikt -
Leta reda på pipelines-kortet
- Leta reda på kortet Pipelines på sidan Programöversikt
- Klicka på knappen "Lägg till"
-
Välj pipeline-typ
-
För utvecklingsmiljöer: Välj "Lägg till icke-produktionsförlopp". Rörledningar som inte är avsedda för produktion är avsedda för dev- och scenmiljöer
-
För produktionsmiljöer: Välj "Lägg till produktionsförlopp". Produktionspipelinjer kräver ytterligare godkännanden
note note NOTE I det här fallet skapar du en icke-produktionspipeline eftersom en utvecklingsmiljö är tillgänglig.
-
-
Konfigurera pipeline - fliken Konfiguration
På fliken Konfiguration:
a. Förloppstyp
- Välj "Distributionspipeline"
b. Pipelinenamn
- Ange ett beskrivande namn, t.ex. ge pipelinen namnet
api-config-pipieline
c. Utlösare för distribution
- Manuell: Distribuera endast när manuellt utlöses (rekommenderas för den första konfigurationen)
- Vid Git-ändringar: Distribuera automatiskt när ändringar överförs till grenen
d. Beteende vid viktiga mätfel
- Fråga varje gång: Fråga efter åtgärder vid fel (standard)
- Misslyckades omedelbart: Felsök automatiskt pipeline vid måttfel
- Fortsätt omedelbart: Fortsätt trots fel
e. Klicka på "Fortsätt" för att fortsätta till fliken Source-kod
-
Konfigurera pipeline - fliken Source-kod
På fliken Source Code:
a. Distributionstyp
- Välj "Måldistribution"
b. Distributionsalternativ
- Välj "Konfig" (endast distribuera konfigurationsfiler). Den talar om för Cloud Manager att detta är en konfigurationsdistribution.
c. Välj berättigad distributionsmiljö
- Välj den miljö där du vill distribuera konfigurationen. I det här fallet är det en
dev-miljö.
d. Definiera Source-koddetaljer
- Databas: Välj den databas som innehåller din
api.yaml-fil. Välj till exempel databasenAEMFormsInternal-ReleaseSanity-p43162-uk59167. - Git-grenen: Välj din gren. I det här fallet distribueras till exempel vår kod på grenen
main. - Kodplats: Ange sökvägen till katalogen
config. Eftersomapi.yamlfinns i mappenconfigi roten anger du/config
e. Klicka på "Spara" för att skapa pipelinen
-
-
Distribuera konfiguration
Distribuera din
api.yaml-konfiguration nu när pipeline har skapats:-
Från översikten för pipeline
- På sidan Programöversikt letar du reda på kortet Pipelines
- Navigera till den konfigurationspipeline du nyss skapat i listan. Du kan till exempel söka efter det pipelinenamn du skapade (t.ex. "api-config-pipeline"). Du kan se pipeline-information, inklusive status och senaste körning.
-
Starta distributionen
- Klicka på knappen "Skapa" (eller uppspelningsikonen ▶) bredvid din pipeline
- Bekräfta distributionen om du uppmanas att göra det och pipeline-körningen börjar
-
Verifiera slutförd distribution
-
Vänta på att pipeline ska slutföras.
-
Om det lyckas ändras statusen till Slutfört (grön bock ✓).
-
Om det misslyckas ändras statusen till"Misslyckad" (röd korsning ✗). Klicka på Hämta loggar för att visa felinformationen.
-
Nu kan du börja testa Forms Communications API:er. I testsyfte kan du använda Postman, curl eller någon annan REST-klient för att anropa API:erna.
-
-
Steg 5: API-specifikationer och testning
Nu när miljön är konfigurerad kan du börja testa AEM Forms Communication API:er antingen med Swagger UI eller programmatiskt genom att utveckla NodeJS-programmet.
I det här exemplet kan vi skapa en PDF med API:erna för Document Services med hjälp av mallen och XDP-filen.
A. Använda Swagger-gränssnittet för API-testning
Swagger-gränssnittet innehåller ett interaktivt gränssnitt för att testa API:er utan att skriva kod. Använd funktionen Testa för att anropa och testa generera PDF Document Service API.
-
Navigera till API-dokumentation
- Forms API: Forms API Reference
- Dokumenttjänster: API-referens för Document Services
Öppna Document Services API:er -dokumentationen i webbläsaren.
-
Expandera avsnittet Dokumentgenerering och välj Skapar ett ifyllbart PDF-formulär från en XDP- eller PDF-mall, eventuellt med datasammanfogning.
-
Klicka på Testa i den högra rutan.
-
Ange följande värden:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Avsnitt Parameter Värde bucket AEM, instans AEM-instansnamn utan Adobe-domännamn ( .adobeaemcloud.com) Använd till exempelp43162-e177398som bucket.Dokumentskydd Bearer Token Använd åtkomsttoken från autentiseringsuppgifterna för OAuth Server-till-server i Adobe Developer Console Project Brödtext mall Överför en XDP för att generera PDF-formuläret. Du kan till exempel använda den här XDP för att generera en PDF. Brödtext data En valfri XML-fil som innehåller de data som ska sammanfogas med mallen för att generera ett förfyllt PDF-formulär. Du kan till exempel använda den här XML för att skapa en PDF. Parametrar X-Adobe-Accept-Experimental 1 -
Klicka på Skicka för att anropa API:t
-
Kontrollera svaret på fliken Svar:
- Om svarskoden är
200innebär det att PDF har skapats. - Om svarskoden är
400betyder det att parametrarna för begäran är ogiltiga eller har fel format. - Om svarskoden är
500betyder det att det finns ett internt serverfel.
I det här fallet är svarskoden
200, vilket betyder att PDF har skapats:
Nu kan du hämta den skapade PDF med knappen Hämta och visa den i PDF Viewer:
- Om svarskoden är
B. Programmatiskt genom att utveckla NodeJS-program
Utveckla ett Node.js-program för att generera ett ifyllbart PDF-formulär från en XDP-mall och en XML-datafil med Document Services API
Förutsättningar
- Node.js är installerat på datorn
- Aktiv AEM as a Cloud Service-instans
- Bearer-token för API-autentisering från Adobe Developer Console
- Exempel på XDP-fil: ClosingForm.xdp
- XML-exempelfil: ClosingForm.xml
Så här utvecklar du programmet Node.js:
Steg 1: Skapa ett nytt Node.js-projekt
Öppna cmd/terminal och kör nedanstående kommandon:
# Create a new directory
mkdir demo-nodejs-generate-pdf
cd demo-nodejs-generate-pdf
##### Initialize Node.js project
npm init -y
Steg 2: Installera nödvändiga beroenden
Installera biblioteken node-fetch, dotenv och form-data om du vill göra HTTP-begäranden, läsa miljövariabler respektive hantera formulärdata.
npm install node-fetch
npm install dotenv
npm install form-data
Steg 3: Uppdatera package.json
-
Öppna cmd/terminal och kör kommandot:
code language-bash code .
Det öppnar projektet i kodredigeraren.
-
Uppdatera filen
package.jsonför att lägga tilltypeimodule.code language-bash { "name": "demo-nodejs-generate-pdf", "version": "1.0.0", "type": "module", "main": "index.js", }
Steg 4: Skapa en .env-fil
-
Skapa en .env-fil på rotnivån för ett projekt
-
Lägg till följande konfiguration och ersätt platshållarna med de faktiska värdena från ADC-projektets autentiseringsuppgifter för OAuth Server-till-server.
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 Du kan kopiera CLIENT_ID,CLIENT_SECRETochSCOPESfrån Adobe Developer Console-projektet.
Steg 5: Skapa src/index.js
- Skapa filen
index.jspå projektets rotnivå - Lägg till följande kod och ersätt platshållarna med de faktiska värdena:
// Import the dotenv configuration to load environment variables from the .env file
import "dotenv/config";
// Import fetch for making HTTP requests
import fetch from "node-fetch";
import fs from "fs";
import FormData from "form-data";
// REPLACE THE FOLLOWING VALUE WITH YOUR OWN
const bucket = <bucket-value>; // Your AEM Cloud Service Bucket name
const xdpFilePath = <xdp-file>;
const xmlFilePath = <xml-file>;
// Load environment variables
const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET;
const scopes = process.env.SCOPES;
// Adobe IMS endpoint for obtaining an access token
const adobeIMSV3TokenEndpointURL = "https://ims-na1.adobelogin.com/ims/token/v3";
// Function to get an access token
const getAccessToken = async () => {
console.log("Getting access token from IMS...");
const options = {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: `grant_type=client_credentials&client_id=${clientId}&client_secret=${clientSecret}&scope=${scopes}`,
};
const response = await fetch(adobeIMSV3TokenEndpointURL, options);
const responseJSON = await response.json();
console.log("Access token received.");
return responseJSON.access_token;
};
// Function to generate PDF form from XDP and XML
const generatePDF = async () => {
const accessToken = await getAccessToken();
console.log("Generating PDF form from XDP and XML...");
// Read XDP and XML files
const xdpFile = fs.readFileSync(xdpFilePath);
const xmlFile = fs.readFileSync(xmlFilePath);
const url = `https://${bucket}.adobeaemcloud.com/adobe/document/generate/pdfform`;
const formData = new FormData();
formData.append("template", xdpFile, {
filename: "form.xdp",
contentType: "application/vnd.adobe.xdp+xml"
});
formData.append("data", xmlFile, {
filename: "data.xml",
contentType: "application/xml"
});
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"X-Api-Key": clientId,
"X-Adobe-Accept-Experimental": "1",
...formData.getHeaders()
},
body: formData,
});
if (response.ok) {
const arrayBuffer = await response.arrayBuffer();
fs.writeFileSync("generatedForm.pdf", Buffer.from(arrayBuffer));
console.log("✅ PDF form generated successfully (saved as generatedForm.pdf)");
} else {
console.error("❌ Failed to generate PDF. Status:", response.status);
console.error(await response.text());
}
};
// Run the PDF generation function
generatePDF();
Steg 6: Kör programmet
node src/index.js
PDF skapas i mappen demo-nodejs-generate-pdf. Navigera till mappen för att hitta den genererade filen generatedForm.pdf.
Du kan öppna den genererade PDF för att visa den.
Felsökning
Vanliga problem och möjliga orsaker
Utgåva 1: 403 Förbjudet fel
Symtomen:
- API-förfrågningar returnerar
403 Forbidden - Felmeddelande: Åtkomst nekad eller Otillräcklig behörighet
- Inträffar även med en giltig åtkomsttoken
Möjliga orsaker:
- Otillräckliga behörigheter i produktprofilen som är länkad till autentiseringsuppgiften OAuth Server-to-Server
- Tjänstanvändargruppen i AEM Author saknar nödvändig behörighet för nödvändiga innehållssökvägar
Problem 2: 401 Otillåtet fel
Symtomen:
- API-förfrågningar returnerar
401 Unauthorized - Felmeddelande: Ogiltig eller utgången token
Möjliga orsaker:
- Åtkomsttoken har gått ut (gäller endast i 24 timmar)
- Felaktigt eller felmatchat klient-ID och klienthemlighet
- Autentiseringshuvuden som saknas eller är felformaterade i API-begäran
Problem 3: 404 Det gick inte att hitta felet
Symtomen:
- API-förfrågningar returnerar
404 Not Found - Felmeddelande: Resursen hittades inte eller API-slutpunkten hittades inte
Möjliga orsaker:
- Klient-ID har inte registrerats i AEM-instansens
api.yaml-konfiguration - Felaktig bucket-parameter (matchar inte AEM-förekomsdentifierare)
- Ogiltigt eller obefintligt resurs-ID (formulär eller resurs)
Problem 4: Autentiseringsalternativet Server-till-server är inte tillgängligt
Symtomen:
- Alternativet OAuth Server-till-server saknas eller är inaktiverat i Adobe Developer Console
Möjlig orsak:
- Användaren som skapar integreringen läggs inte till som Utvecklare i den associerade produktprofilen
Problem 5: Pipeline-distribution misslyckades
Symtomen:
- Körningen av konfigurationspipeline misslyckades
- Distributionsloggar visar fel relaterade till
api.yaml
Möjliga orsaker:
- Ogiltig YAML-syntax (indrag, offert eller matrisformatproblem)
api.yamlplacerades i fel katalog- Felaktigt eller felaktigt klient-ID i konfigurationen
Relaterade artiklar
Mer information om hur du konfigurerar miljö för batchbearbetning (asynkrona API:er) finns i AEM Forms as a Cloud Service Communications Batch Processing.