AEM Forms Communications API's aanroepen met OAuth Server-to-Server-verificatie
Deze handleiding bevat instructies voor het configureren en aanroepen van AEM Forms Communications Synchronous API's die via de Adobe Developer Console worden benaderd via OAuth Server-to-Server-verificatie.
Vereisten
Als u een omgeving wilt instellen voor het uitvoeren en testen van AEM Forms Communications API's, moet u het volgende doen:
AEM as a Cloud Service-omgeving bijwerken
- AEM Release 2024.10.18459.20241031T210302Z of hoger
- Productprofielen bijwerken als de omgeving vóór november 2024 is gemaakt
Toegang en machtigingen
Zorg ervoor u de vereiste toegangsrechten en toestemmingen hebt alvorens u begint de Mededelingen APIs te vormen.
Gebruiker en roltoestemmingen
- Ontwikkelaarsrol toegewezen in Adobe Admin Console
- Toestemming om projecten te maken in de Adobe Developer Console
Toegang van de Bewaarplaats van de it
- Toegang tot Cloud Manager Git Repository
- Referenties ophalen voor klonen en wijzigingen doorvoeren
Toegangstoken genereren met Adobe Developer Console (ADC)
- Genereer toegangstoken via de Adobe Developer Console met behulp van OAuth Server-to-Server verificatie.
- Client-id ophalen van de Adobe Developer Console
Ontwikkelingsinstrumenten
- Node.js voor het runnen van steekproeftoepassingen
- Laatste versie van Git
- Toegang tot terminal/de lijn van het Bevel
- redacteur van de Tekst of winde voor het uitgeven van configuratiedossiers (de Code van VS, IntelliJ, enz.)
- Postman of gelijkaardig hulpmiddel voor API het testen
AEM Forms Communications Synchronous API's configureren
AEM Forms Communication-API's zijn toegankelijk via de Adobe Developer Console met behulp van OAuth server-to-server verificatie.
Voer de stappen uit om uit te leggen hoe u de synchrone API's voor communicatie van Forms configureert om PDF te genereren met behulp van de sjabloon en het XDP-bestand:
Stap 1: Toegang tot AEM Cloud Service Environment en AEM Forms Endpoint
Open de omgevingsgegevens van de AEM Cloud Service om de URL's en id's te verkrijgen die nodig zijn voor de API-configuratie.
1.1 Aanmelden bij Adobe Cloud Manager
- Ga aan my.cloudmanager.adobe.com
- Meld u aan bij uw Adobe ID
1.2 Navigeer naar het programmaoverzicht
Selecteer uw programma in de lijst. U wordt opnieuw gericht aan de pagina van het Overzicht van het Programma
1.3 Toegang tot en weergave van AEM Cloud Service Environment
U kunt de details van de AEM Cloud Service Environment weergeven of openen met een van de volgende twee opties:
-
Op de pagina van het Overzicht van het Programma
-
Klik "Milieu's" in het linkerzijmenu. U ziet een lijst met alle omgevingen
-
Klik op de naam van de specifieke omgeving om details weer te geven
-
Op de pagina van het Overzicht van het Programma
-
Bepaal de plaats van de sectie van Milieu's
-
Klik "tonen allen" om alle milieu's te bekijken
-
Klik het weglatingsmenu (…) naast het milieu
-
Selecteer "Details van de Mening"
1.4. Zoek je AEM Forms-eindpunt
Van de pagina van de Milieu details, neem nota van uw instantie van AEM URL.
Stap 2: gegevensopslagruimte voor klonen
Kloont de Cloud Manager Git Repository om uw API-configuratiebestanden te beheren.
2.1 Zoek de sectie Opslagplaats
-
Op de pagina van het Overzicht van het 0} Programma, klik de Bewaarplaatsen tabel
-
Zoek de naam van de opslagplaats en klik op het weglatingenmenu (…)
-
De URL van de gegevensopslagruimte kopiëren
https://git.cloudmanager.adobe.com/<org>/<program>/2.2 Klonen met Git-opdracht
-
De opdrachtprompt of terminal openen
-
Voer de opdracht
git cloneuit om de Git-opslagplaats te klonen.code language-bash git clone [repository-url]
Als u bijvoorbeeld uw Git Repository wilt klonen, voert u de volgende opdracht uit:
https://git.cloudmanager.adobe.com/formsinternal01/AEMFormsInternal-ReleaseSanity-pXXX-ukYYYY/
Meer leren op hoe te om Adobe Cloud Manager en Adobe Cloud Manager te integreren, zie {de Documentatie van de Integratie van 0} it .
Stap 3: Adobe Developer Console Project Setup
3.1 Toegang tot Adobe Developer Console
- Ga aan Adobe Developer Console
- Meld u aan bij uw Adobe ID
- Nieuw project maken of naar een bestaand project navigeren
-
Van de Snelle sectie van het Begin, klik creeer nieuw project
-
Een nieuw project wordt gecreeerd met een standaardnaam
-
Klik uitgeven project in de hoogste juiste hoek
uit
-
Geef een betekenisvolle naam op (bijvoorbeeld "formsproject")
-
Klik sparen
-
Klik Alle Projecten van Adobe Developer Console
-
Zoek uw project en klik om het te openen.
3.2 Communicatie-API's van Forms toevoegen
-
Klik toevoegen API
toe
-
In voeg API dialoog toe, filter door Experience Cloud
-
Selecteer "Communicatie APIs van Forms"
-
Klik daarna
-
Selecteer Server-aan-Server authentificatiemethode
-
Klik daarna
3.3 Productprofiel toevoegen
-
Selecteer het Profiel van het Product dat uw instantie URL van AEM (
https://Service Type -Environment Type-Program XXX-Environment XXX.adobeaemcloud.com) aanpast. -
Klik sparen gevormde API. De API en het Profiel van het Product worden toegevoegd aan uw project
-
Bekijk de Credentials details sectie
Opname API geloofsbrieven
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 Genereer de toegang
Handmatig toegangstokens genereren in Adobe Developer Console:
-
Klik "produceer toegangstoken" knoop in de API van uw project sectie
-
Het gegenereerde toegangstoken kopiëren
| note note |
|---|
| NOTE |
| Het teken van de toegang is geldig slechts voor 24 uren |
Genereer programmatically tokens gebruikend IMS van Adobe API:
Vereiste Referenties:
- Client-id
- Clientgeheim
- Bereiken (doorgaans:
openid, AdobeID, read_organizations, additional_info.projectedProductContext, read_pc.dma_aem_cloud, aem.document)
Symbolische Eindpunt:
| code language-none |
|---|
|
Verzoek van de Steekproef (krulling):
| code language-bash |
|---|
|
Reactie:
| code language-json |
|---|
|
U kunt het gegenereerde toegangstoken nu gebruiken om API-aanroepen te maken voor ontwikkelings-, stage- of productieomgevingen.
Stap 4: Client-id registreren bij AEM-omgeving
Om identiteitskaart van de Cliënt van uw ADC Project toe te laten om met de instantie van AEM te communiceren, moet u het registreren gebruikend een YAML configuratiedossier en het opstellen via een Pijpleiding Config.
4.1 Configuratiedirectory zoeken of maken
-
Ga naar de gekloonde AEM Project-opslagplaats en zoek de map
config -
Als het niet bestaat, creeer het op het niveau van de projectwortel:
code language-bash mkdir config -
Maak een nieuw bestand met de naam
api.yamlin de mapconfig:code language-bash touch config/api.yaml -
Voeg de volgende code toe aan het
api.yaml-bestand: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>"
In het volgende voorbeeld worden de configuratieparameters uitgelegd:
-
soort: Altijd plaats aan
"API"(identificeert dit als API configuratie) -
versie: API versie, typisch
"1"of"1.0" -
envTypes: Serie van milieutypes waar dit config van toepassing is
["dev"]- Alleen ontwikkelomgevingen["stage"]- Alleen testomgevingen["prod"]- Alleen productieomgevingen
-
allowedClientIDs: De cliënt IDs wordt toegestaan om tot uw instantie van AEM toegang te hebben
- auteur: De identiteitskaart van de cliënt voor auteursrij
- publiceert: De identiteitskaart van de cliënt voor publiceer rij
- voorproef: De identiteitskaart van de cliënt voor voorproefrij
4.2 Wijzigingen vastleggen en duwen
-
Navigeer naar de hoofdmap van uw gekloonde opslagplaats en voer de onderstaande opdrachten uit:
code language-bash git add config/api.yaml git commit -m "Whitelist client id for api invocation" git push origin <your-branch>
Stap 5: Opstelling Config Pipeline
5.1 Meld u aan bij Adobe Cloud Manager
- Ga aan my.cloudmanager.adobe.com
- Meld u aan bij uw Adobe ID
5.1 Zoek de Pipelinekaart
-
Bepaal de plaats van Pijpleidingen kaart op de pagina van het Overzicht van het Programma
-
Klik "toevoegen" knoop
toe
5.2 Selecteer het type Pijpleiding
-
voor de milieu's van de Ontwikkeling: Selecteer "voeg niet-productiepijpleiding toe". Niet-productiepijpleidingen zijn bestemd voor ontwennings- en werkruimten
-
voor de milieu's van de Productie: Selecteer "Voeg de Pijpleiding van de Productie toe". Voor productiepijpleidingen zijn aanvullende goedkeuringen vereist
1. Vorm Pijpleiding - het Lusje van de Configuratie
In het lusje van de Configuratie:
a. Type van Pijpleiding
- Selecteer "Pipeline van de Plaatsing"
b. Naam van de Pijpleiding
- Geef een beschrijvende naam op. Geef de pijpleiding bijvoorbeeld de naam
api-config-pipieline
c. Trigger van de Plaatsing
- Hand: Implementeer slechts wanneer manueel teweeggebracht (geadviseerd voor aanvankelijke opstelling)
- op de Veranderingen van het Git: Auto-stel op wanneer de veranderingen aan de tak worden geduwd
d. Belangrijk Metrisch Gedrag van Mislukt
- vraag telkens als: Vraag om actie op mislukkingen (gebrek)
- Onmiddellijk Fail: Automatisch ontbreken pijpleiding op metrische mislukkingen
- ga onmiddellijk verder: ondanks mislukkingen
e. Klik "ga" verder om aan het Source Code lusje te werk te gaan
2. Pijpleiding configureren - tabblad Source-code
In het lusje van de Code van 0} Source:
a. Type van Plaatsing
- Selecteer "gerichte plaatsing"
b. Opties van de Plaatsing
- Selecteer "Config" (stel configuratiedossiers slechts op). Het vertelt Cloud Manager dit een config plaatsing is.
c. Uitgezochte In aanmerking komende Milieu van de Plaatsing
- Kies het milieu waar u config wilt opstellen. In dit geval is dit een
dev-omgeving.
d. bepaal de Details van de Code van Source
- Bewaarplaats: Selecteer de bewaarplaats die uw
api.yamldossier bevat. Selecteer bijvoorbeeld deAEMFormsInternal-ReleaseSanity-pXXXXX-ukYYYYYrepository. - Tak van de Git: Selecteer uw tak. In dit geval wordt de code bijvoorbeeld geïmplementeerd in de
main-vertakking. - Plaats van de Code: ga de weg aan
configfolder in. Terwijlapi.yamlzich in deconfig-map bij de hoofdmap bevindt, voert u/configin
e. Klik "sparen" om de pijpleiding tot stand te brengen
Stap 6: Configuratie implementeren
Nu de pijpleiding wordt gecreeerd, stel uw api.yaml configuratie op
6.1 Van het Overzicht van Pijpleidingen
- Voor de pagina van het Overzicht van het Programma, bepaal de plaats van de Pijpleidingen kaart
- Navigeer aan uw onlangs gecreeerd config pijpleiding in de lijst. Bijvoorbeeld, zoek de pijpleidingsnaam u creeerde (b.v., "api-config-pijpleiding"). U kunt pijpleidingsdetails met inbegrip van status en laatste looppas zien.
6.2 De implementatie starten*
- Klik "bouwen" knoop (of speel pictogram ▶) naast uw pijpleiding
- Bevestig de plaatsing indien ertoe aangezet en de pijpleidingsuitvoering begint
6.3 Controleren of de implementatie is gelukt
-
Wacht op de pijpleiding om te voltooien.
-
Als dit lukt, verandert de status in "Succes" (groen vinkje ✓ ).
-
Als dit mislukt, verandert de status in ''Mislukt'' (rood kruis ✗ ). Klik Logboeken van de Download om de foutendetails te bekijken.
-
U kunt nu de Forms Communications API's testen. Voor testdoeleinden kunt u de API's aanroepen met de Postman, curl of een andere REST-client.
Stap 7: API-specificaties en tests
Nu uw omgeving is geconfigureerd, kunt u de communicatie-API's van AEM Forms starten met het testen van de communicatie-API's van Swagger UI of via programmacode door de toepassing NodeJS te ontwikkelen.
De wagger UI verstrekt een interactieve interface voor het testen APIs zonder code te schrijven.Gebruik probeert het eigenschap om te roepen en te testen produceert de Communicatie API van PDF Forms.
-
Navigeer aan Communicatie API Verwijzing van Forms en open de Communicatie API van Forms documentatie in uw browser.
-
Breid de sectie van de Generatie van het 0} Document uit en selecteer produceert een invulbare vorm van PDF van een malplaatje XDP of van PDF, naar keuze met gegevens die samenvoegen.
-
In de juiste ruit, klik probeert het.
-
Voer de volgende waarden in:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Sectie Parameter Waarde emmer AEM-exemplaar AEM-instantienaam zonder de Adobe-domeinnaam ( .adobeaemcloud.com). Gebruik bijvoorbeeldpXXXXX-eYYYYYals emmertje.Beveiliging Dragertoken Gebruik het toegangstoken van de Server-aan-Server referentie van het Project van Adobe Developer Console Lichaam template Upload een XDP om het PDF-formulier te genereren. Bijvoorbeeld, kunt u dit XDP gebruiken om een PDF te produceren. Lichaam data Een optioneel XML-bestand met de gegevens die met de sjabloon moeten worden samengevoegd om een voorgevuld PDF-formulier te genereren. Bijvoorbeeld, kunt u dit XML gebruiken om een PDF te produceren. Parameters X-Adobe-Accept-Experimental 1 -
Klik verzenden om API aan te halen
-
Controleer de reactie in het lusje van de Reactie:
- Als de antwoordcode
200is, betekent dit dat de PDF is gemaakt. - Als de antwoordcode
400is, betekent dit dat de aanvraagparameters ongeldig of onjuist zijn geformuleerd. - Als de antwoordcode
500is, betekent dit dat er een interne serverfout is. - Als de antwoordcode
403is, betekent dit dat er een machtigingsfout is.
In dit geval is de antwoordcode
200, hetgeen betekent dat de PDF is gegenereerd:
Nu, kunt u gecreeerde PDF downloaden gebruikend de 3} knoop van de Download {en het bekijken in de kijker van PDF:
note note NOTE Voor testende doeleinden, kunt u Postman , krullen , of een andere cliënt van de WEERSTING ook gebruiken om AEM APIs aan te halen. - Als de antwoordcode
Ontwikkel een toepassing Node.js om een invulbare vorm van PDF van een XDP malplaatje en een dossier van XML te produceren dat het Document Services API gebruikt
Eerste vereisten
- Knooppunt.js geïnstalleerd op uw systeem
- Active AEM as a Cloud Service-exemplaar
- Dragertoken voor API-verificatie van Adobe Developer Console
- Voorbeeld-XDP-bestand: ClosingForm.xdp
- Het Dossier van XML van de steekproef: ClosingForm.xml
Als u de toepassing Node.js wilt ontwikkelen, volgt u de stapsgewijze ontwikkeling:
Stap 1: Creeer een Nieuw Project Node.js
Open de cmd/terminal en voer de volgende bevelen uit:
| code language-bash |
|---|
|
Stap 2: Installeer Vereiste Afhankelijkheden
Installeer de knoop-haal, dotenv, en vorm-gegevens bibliotheken om HTTP- verzoeken te maken, milieu variabelen te lezen, en vormgegevens respectievelijk te behandelen.
| code language-bash |
|---|
|
Stap 3: Update package.json
-
Open cmd/terminal en stel het bevel in werking:
code language-bash code .
Het opent het project in de coderedacteur.
-
Werk het
package.json-bestand bij om hettypetomodule-bestand toe te voegen.code language-bash { "name": "demo-nodejs-generate-pdf", "version": "1.0.0", "type": "module", "main": "index.js", }
Stap 4: Creeer een .env- Dossier
-
.env dossier op het wortelniveau van een project tot stand brengen
-
Voeg de volgende configuratie toe en vervang placeholders met de daadwerkelijke waarden van OAuth van het Project van ADC Server-aan-Server referentie.
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 U kunt de CLIENT_ID,CLIENT_SECRETenSCOPESvan het Adobe Developer Console-project kopiëren.
Stap 5: Creeer src/index.js
index.js-bestand maken op het hoofdniveau van het project- Voeg de volgende code toe en vervang de plaatsaanduidingen door de werkelijke waarden:
| code language-javascript |
|---|
|
Stap 6: Looppas de Toepassing
| code language-bash |
|---|
|
De PDF wordt gemaakt in de map demo-nodejs-generate-pdf . Navigeer naar de map om het gegenereerde bestand met de naam generatedForm.pdf te zoeken.
U kunt geproduceerde PDF openen om het te bekijken.
Problemen oplossen
Vaak voorkomende problemen en mogelijke oorzaken
Versie 1: 403 Verboden fout
Symptomen:
- API-aanvragen worden geretourneerd
403 Forbidden - Het bericht van de fout: Onbevoegde Toegang
Mogelijke Oorzaak:
- Client-id niet geregistreerd in de configuratie
api.yamlvan de AEM-instantie
Versie 2: 401 niet-geautoriseerde fout
Symptomen:
- API-aanvragen worden geretourneerd
401 Unauthorized - Het bericht van de fout: Ongeldig of verlopen teken
Mogelijke Oorzaken:
- Toegangstoken is verlopen (alleen geldig gedurende 24 uur)
- Onjuiste of onjuiste client-id en clientgeheim
Versie 3: fout 404 niet gevonden
Symptomen:
- API-aanvragen worden geretourneerd
404 Not Found - Het bericht van de fout: Middel vond niet of API eindpunt niet
Mogelijke Oorzaak:
- Onjuiste emmerparameter (komt niet overeen met AEM-instantie-id)
Probleem 4: implementatiefouten van pijplijn
Symptomen:
- Uitvoering van configuratiepipet mislukt
- In implementatielogboeken worden fouten met betrekking tot
api.yamlweergegeven
Mogelijke Oorzaken:
- Ongeldige YAML-syntaxis (problemen met de inspringing, quoting of arrayindeling)
api.yamlin onjuiste map geplaatst- Onjuiste of onjuiste client-id in de configuratie
- Ongeldig clientgeheim
Probleem 5: communicatie-API's van Forms worden niet uitgevoerd
Symptomen:
- API-aanvragen retourneren fouten die aangeven dat er niet-ondersteunde of niet-beschikbare functies zijn.
- PDF genereren met XDP en XML werkt niet.
- De plaatsing van de pijpleiding voltooit met succes, maar runtime API vraag ontbreekt.
Mogelijke Oorzaak:
In de AEM-omgeving wordt een versie uitgevoerd die is uitgebracht voordat Forms Communication-API's zijn geïntroduceerd of ondersteund.
Om het milieu van AEM bij te werken verwijs naar de instantie van AEM van de Update sectie.
AEM-instantie bijwerken
U kunt als volgt het AEM-exemplaar bijwerken om Omgevingsdetails te zoeken:
-
Selecteer het
ellipsis(…) pictogram naast de milieunaam en klik Update -
Klik voorleggen knoop en stel de voorgestelde FullstackPipeline in werking.