Anropa AEM Forms Communications API:er med OAuth Server-till-Server-autentisering
Den här guiden innehåller anvisningar för hur du konfigurerar och anropar AEM Forms Communications Synchronous API:er som nås via Adobe Developer Console med OAuth Server-to-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:
Uppdatera AEM as a Cloud Service-miljö
- AEM version 2024.10.18459.20241031T210302Z eller senare
- Uppdatera produktprofiler om miljön skapades före november 2024
Å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
- Utvecklarroll som tilldelats i Adobe Admin Console
- Behörighet att skapa projekt i Adobe Developer Console
Git-databasåtkomst
- Åtkomst till Cloud Manager Git-databas
- Git-inloggningsuppgifter för kloning och push-ändringar
Generera åtkomsttoken med Adobe Developer Console (ADC)
- Generera åtkomsttoken via Adobe Developer Console med OAuth Server-till-Server-autentisering.
- Hämta klient-ID från Adobe Developer Console
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
Konfigurera Synkrona API:er för AEM Forms Communications
AEM Forms Communication API:er nås via Adobe Developer Console med hjälp av OAuth server-till-server-autentisering.
Följ stegen nedan för att konfigurera synkrona API:er för Forms Communication för att generera PDF med hjälp av mallen och XDP-filen:
Steg 1: 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.
1.1 Logga in på Adobe Cloud Manager
- Navigera till my.cloudmanager.adobe.com
- Logga in med din Adobe ID
1.2 Navigera till Program Overview
Välj ditt program i listan. Du omdirigeras till sidan Programöversikt
1.3 Åtkomst och visning av AEM Cloud-tjänstmiljö
Du kan visa eller komma åt informationen om AEM Cloud-tjänstmiljön med något av följande två alternativ:
-
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
-
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"
1.4. Hitta din AEM Forms-slutpunkt
Observera din AEM URL-instans på informationssidan Miljö .
Steg 2: Klona Git-databas
Klona Cloud Manager Git-databasen för att hantera API-konfigurationsfilerna.
2.1 Leta rätt på avsnittet Databas
-
Klicka på fliken Databaser på sidan Programöversikt
-
Leta reda på databasnamnet och klicka på ellipsmenyn (…)
-
Kopiera databas-URL
https://git.cloudmanager.adobe.com/<org>/<program>/2.2 Klona med Git-kommando
-
Öppna kommandotolken eller terminalen
-
Kör kommandot
git cloneför att klona Git-databasen.code language-bash git clone [repository-url]
Om du till exempel vill klona din Git-databas kör du följande kommando:
https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-pXXX-ukYYYY/
Mer information om hur du integrerar Adobe Cloud Manager och Adobe Cloud Manager finns i Git-integreringsdokumentation.
Steg 3: Adobe Developer Console Project Setup
3.1 Åtkomst till Adobe Developer Console
- Navigera till Adobe Developer Console
- Logga in med din Adobe ID
- Skapa nytt projekt eller navigera till ditt befintliga 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
-
Klicka på Alla projekt i Adobe Developer Console
-
Leta upp projektet och klicka för att öppna det.
3.2 Lägg till API:er för Forms Communication
-
Klicka på Lägg till API
-
I dialogrutan Lägg till API kan du filtrera efter Experience Cloud
-
Välj "Forms Communication APIs"
-
Klicka på Nästa
-
Välj autentiseringsmetoden OAuth Server-till-server
-
Klicka på Nästa
3.3 Lägg till produktprofil
-
Välj den produktprofil som matchar din AEM-instans-URL (
https://Service Type -Environment Type-Program XXX-Environment XXX.adobeaemcloud.com). -
Klicka på Spara konfigurerat API. API och produktprofil läggs till i ditt projekt
-
Visa avsnittet Information om autentiseringsuppgifter
Post-API-autentiseringsuppgifter
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 Generera åtkomst
Generera åtkomsttoken manuellt i Adobe Developer Console:
-
Klicka på knappen "Generera åtkomsttoken" i projektets API-avsnitt
-
Kopiera genererad åtkomsttoken
| note note |
|---|
| NOTE |
| Åtkomsttoken är endast giltig i 24 timmar |
Generera tokens programmatiskt med Adobe IMS API:
Nödvändiga autentiseringsuppgifter:
- Klient-ID
- Klienthemlighet
- Omfång (vanligtvis:
openid, AdobeID, read_organizations, additional_info.projectedProductContext, read_pc.dma_aem_cloud, aem.document)
Tokenslutpunkt:
| code language-none |
|---|
|
Exempelbegäran (url):
| code language-bash |
|---|
|
Svar:
| code language-json |
|---|
|
Du kan nu använda den genererade åtkomsttoken för att göra API-anrop för utvecklings-, scen- eller produktionsmiljöer.
Steg 4: Registrera klient-ID med 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.
4.1 Hitta eller skapa konfigurationskatalog
-
Navigera till den klonade AEM Project-databasen och leta reda på mappen
config -
Om den inte finns skapar du den på projektets rotnivå:
code language-bash mkdir config -
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å
4.2 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>
Steg 5: Konfigurera konfigurationsförlopp
5.1 Logga in på Adobe Cloud Manager
- Navigera till my.cloudmanager.adobe.com
- Logga in med din Adobe ID
5.1 Leta reda på pipelines-kortet
-
Leta reda på kortet Pipelines på sidan Programöversikt
-
Klicka på knappen "Lägg till"
5.2 Välj typ av pipeline
-
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
1. Konfigurera pipeline - Konfigurationsflik
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
2. Konfigurera pipeline - Source Code Tab
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-pXXXXX-ukYYYYY. - 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
Steg 6: Distribuera konfiguration
Distribuera din api.yaml-konfiguration nu när pipeline har skapats
6.1 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.
6.2 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
6.3 Verifiera lyckad 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 7: API-specifikationer och testning
Nu när miljön är konfigurerad kan du börja testa API:erna för AEM Forms Communication antingen med hjälp av användargränssnittet i Swagger eller programmatiskt genom att utveckla NodeJS-programmet.
Swagger-gränssnittet innehåller ett interaktivt gränssnitt för att testa API:er utan att behöva skriva kod. Använd funktionen Prova för att anropa och testa generera Forms Communication API för PDF.
-
Navigera till Forms Communication API Reference och öppna Forms Communication API -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 exempelpXXXXX-eYYYYYsom bucket.Dokumentskydd Bearer Token Använd åtkomsttoken från autentiseringsuppgiften OAuth Server-to-Server för 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. - Om svarskoden är
403betyder det att det finns ett auktoriseringsfel.
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:
note note NOTE I testsyfte kan du även använda Postman, curl eller någon annan REST-klient för att anropa AEM API:er. - Om svarskoden är
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:
| code language-bash |
|---|
|
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.
| code language-bash |
|---|
|
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:
| code language-javascript |
|---|
|
Steg 6: Kör programmet
| code language-bash |
|---|
|
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: Obehörig åtkomst
Möjlig orsak:
- Klient-ID har inte registrerats i AEM-instansens
api.yaml-konfiguration
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
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öjlig orsak:
- Felaktig bucket-parameter (matchar inte AEM-förekomsdentifierare)
Problem 4: Driftsättning av pipeline 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
- Ogiltig klienthemlighet
Problem 5: Forms Communication API:er kan inte köras
Symtomen:
- API-begäranden returnerar fel som anger att funktioner som inte stöds eller inte är tillgängliga.
- PDF-generering med XDP och XML fungerar inte.
- Distributionen av pipeline har slutförts, men API-anrop för körning misslyckas.
Möjlig orsak:
AEM-miljön kör en version som släpptes innan Forms Communication API:er introducerades eller stöddes.
Information om hur du uppdaterar AEM-miljön finns i avsnittet Uppdatera AEM-instans.
Uppdatera AEM-instans
Så här uppdaterar du AEM-instansen för att hitta miljöinformation:
-
Markera ikonen
ellipsis(…) bredvid miljönamnet och klicka på Uppdatera -
Klicka på knappen Skicka och kör den föreslagna helstackspipelinen.