Gyorsindítás öt percben
Profil, app, telepítés a teszt-fiókra, első API-hívás az SDK-val és első webhook. Utána ugyanez részletesen, tíz lépésben.
A legrövidebb út egy működő telepítésig: a végén az appod a teszt-fiókodból olvas adatot, és fogad egy aláírt eseményt. Előfizetés és jóváhagyás nem kell hozzá.
Tudnivaló
A teszt-fiók ezen a környezeten még nincs bekapcsolva. Addig a 3. lépés helyett a saját Dynex-fiókodra telepítve tesztelhetsz (lásd lent, a részletes lista 6. lépését).
1. lépés: Hozd létre a fejlesztői profilod
Regisztrálj a /developer/register oldalon (cégnév, weboldal, Fejlesztői szerződés). Ha már van Dynex-fiókod, lépj be a /developer portálra, és hozd létre ott a profilod.
2. lépés: Hozz létre egy appot
Add meg a nevet, az
app_url-t és legalább egy redirect URI-t (pontos egyezés kell; helyi fejlesztéshez ahttp://localhostcím is megfelel). Kapsz egyclient_id-t és egyclient_secret-et - az utóbbi csak egyszer látszik, tárold biztonságosan.3. lépés: Telepítsd a teszt-fiókra
A portálon az app „Teszt-fiók” fülén hozd létre a teszt-fiókodat, majd kattints a „Telepítés a teszt-fiókra” gombra. A Dynex valódi
code-dal küld az első regisztrált redirect URI-dra; a szervered ezt azexchangeAuthorizationCode()hívással kulcsra cseréli. A leggyorsabb, ha a példa-appból indulsz: a callback és a token-csere már benne van. Részletek: Teszt-fiók.4. lépés: Hívd meg az API-t az SDK-val
A token-csere válaszában kapott kulccsal (
access_token) hívd ame()végpontot:1import { DynexClient } from "@dynex/app-sdk";2 3// A token-csere válaszából elmentett kulcs (dxk_…).4const dynex = new DynexClient({ accessToken: install.accessToken });5const me = await dynex.me();6console.log(me); // teszt-fiókos telepítésnél a válaszban sandbox: true áll5. lépés: Fogadd az első webhookot
Adj meg egy webhook URL-t az app „Webhookok” fülén (csak nyilvános https cím lehet; helyi géphez alagút kell), majd küldj teszt-eseményt a portálról. A fogadó mindkét csatornát ellenőrzi:
1import { isAppChannelEvent, parseAppEvent, parseWebhookEvent, WebhookSignatureError } from "@dynex/app-sdk";2 3app.post("/webhooks", express.raw({ type: "*/*" }), (req, res) => {4 try {5 const event = isAppChannelEvent(req.headers)6 ? parseAppEvent(req.body, req.headers, process.env.DYNEX_EVENT_SECRET) // app.* események7 : parseWebhookEvent(req.body, req.headers, install.webhookSecret); // bérlői események8 console.log(event.event);9 res.status(200).end();10 } catch (e) {11 if (e instanceof WebhookSignatureError) return res.status(401).end();12 throw e;13 }14});
Ugyanez a hívás cURL-lel és az SDK-val, a szerződésből generálva:
1curl -X GET 'https://prod.dynex.hu/api/v3/me' \2 -H 'Authorization: Bearer dxk_A_TELEPITES_KULCSA' \3 -H 'Accept: application/json'1// Node.js 18+ (beépített fetch, nem kell külön csomag).2async function main() {3 const res = await fetch("https://prod.dynex.hu/api/v3/me", {4 method: "GET",5 headers: {6 "Authorization": "Bearer dxk_A_TELEPITES_KULCSA",7 "Accept": "application/json"8 }9 });10 11 const data = await res.json();12 console.log(res.status, data);13}14 15main().catch(console.error);1. lépés: Fejlesztői profil
A fejlesztői portál külön réteg: nem kell hozzá Dynex-előfizetés. Regisztrálj a /developer/register oldalon (cégnév, weboldal, Fejlesztői szerződés), vagy ha már van Dynex-fiókod, lépj be a /developer portálra és hozd létre ott a profilod (kapcsolati e-mail, számlázási adatok a profilban).
2. lépés: Új app
Add meg a nevet, slugot, leírást, az
app_url-t (https), a redirect URI-kat (pontos egyezés!), a webhook URL-t, a kért hatóköröket, a beágyazott menüpontokat (path+title) és az árat. Kapsz egyclient_id-t és egyclient_secret-et - az utóbbi csak egyszer látszik, tárold biztonságosan.3. lépés: SDK
Töltsd le az SDK-csomagot (dynex-app-sdk.tgz) és telepítsd:
npm install ./dynex-app-sdk.tgz(vagy indulj a példa-appból). Töltsd ki a.env-t a client_id / client_secret párral.4. lépés: OAuth-indítás
Egy „Telepítés a Dynexbe” gomb a
buildAuthorizeUrl()által épített címre visz. A folyamat leírása: OAuth és hatókörök.5. lépés: Callback
A redirect URI-don a
code-otexchangeAuthorizationCode()-dal kulcsra cseréled, és a választ (kulcs,install_id,tenant_id,embed_secret,webhook_secret) bérlőnként elmented. A Dynex piacteréről indított telepítésnél a codestatenélkül, az ELSŐ regisztrált redirect URI-dra érkezik -readMarketplaceCallbackParams()-szal fogadd, és a választenant_id-ját mutasd meg a felhasználónak megerősítésre. A sikeres csere után küldd vissza a bérlőt a Dynexbe:buildMarketplaceReturnUrl({ slug })=/app/marketplace/<slug>?telepitve=1- a piactéri oldal ott a „telepítve” visszajelzést mutatja.6. lépés: Teszt-telepítés
A legegyszerűbb út a teszt-fiók: a portálon az app „Teszt-fiók” fülén egy kattintással telepíted, mintaadatokra, jóváhagyás nélkül. Ha van saját Dynex-fiókod, a régi út is megmaradt: draft állapotban az app olyan fiókra telepíthető, ahol te tag vagy. A piactér listája csak jóváhagyott appot mutat: a draft appot a szerkesztő „Telepítés a tesztfiókra” gombjával (a közvetlen
/app/marketplace/<slug>címen) vagy az OAuth-linkről telepítsd a saját fiókodra.7. lépés: API-hívás
new DynexClient({ accessToken })- próbáld ame()-t, majd a valódi végpontokat.8. lépés: Beágyazás
Az
app_url + embeds[].patholdalad olvassa adynex_tokenparamétert, ellenőrzi (verifyEmbedToken), a böngészőben pedig acreateAppBridge()hívja aready()-t és azautoResize()-t. Részletek: Beágyazott oldalak.9. lépés: Webhook
A telepítéskor a Dynex automatikusan feliratkozik az app
default_webhook_eventseseményeire a webhook URL-eden; a fogadóbanparseWebhookEvent()ellenőrzi az aláírást. Ugyanerre a címre jönnek az app életciklus-eseményei is (telepítés, eltávolítás, jóváhagyás) - azokat aparseAppEvent()fogadja, másik titokkal.10. lépés: Beküldés
A fejlesztői portálon „Beküldés jóváhagyásra”. A tulajdonos jóváhagyja, visszaküldi megjegyzéssel vagy elutasítja; jóváhagyás után az app megjelenik a marketplace-en. Részletek: Adatlap, beküldés, szabályzat.