Ez a dokumentum bemutatja, hogyan lehet külső backend rendszerrel (CRM, ticketing, saját dashboard) a GLC-RAG-on keresztül kezelni a Facebook oldalhoz kötött komment audit folyamatot: válaszmód beállítása, kommentek listázása, majd jóváhagyásos módban a válasz elküldése a Facebookra.
Hatókör és forrás: Meta/Facebook termékintegráció; a végpontok a /admin/fb prefix alatt futnak. A nyilvános OpenAPI (openapi.json / Redoc) nem feltétlenül tartalmazza ezeket az útvonalakat ugyanilyen részletességgel. Eltérés esetén a futó backend viselkedése és a Meta Graph API a döntő. A többi quickstart oldalhoz hasonlóan ez az oldal oktató jellegű; a hivatalos contract a szerveren elérhető API specifikáció.
Előfeltételek – összekötött Facebook profil a tenantban, ismert profile_id (UUID), B2B API kulcs fb_comment scope-pal a listához és küldéshez.
(Opcionális)Válaszmód – reply_mode: auto (automata) vagy manual (jóváhagyás szükséges) beállítása vagy lekérése JWT (tenant admin) hitelesítéssel.
Kommentek listája – GET .../comments – JWT vagy X-API-Key (fb_comment scope).
Válasz küldése – POST .../send – csak akkor, ha a komment státusza pending_approval vagy failed_manual – JWT vagy X-API-Key.
mermaid
flowchart LR prereq[Előfeltételek_profile_id_és_kulcs] mode[Opcionális_PUT_reply_mode_JWT] list[GET_comments_X_API_Key] send[POST_send_X_API_Key] prereq --> mode mode --> list list --> send
A Facebook oldal össze van kötve a GLC-RAG admin felületén (OAuth, érvényes oldal token).
profile_id: a profil belső UUID-ja. A GET /admin/fb/profiles (profillista) csak tenant admin JWT-val hívható; fb_comment API kulccsal nem. A profile_id-t tipikusan az admin UI-ból másolod, vagy egyszer rögzíted a külső rendszer konfigurációjában.
B2B integrációhoz hozz létre (vagy használj) API kulcsot fb_comment scope-pal: ez a jogosultság a komment lista és küldés mellett a Facebook modulban a RAG dokumentumkeresés (…/comments/retrieve), a shop termékkeresés (…/comments/retrieve-products) és a format-reply végpontokra is elég — nem kell ehhez külön rag vagy shopping scope a Facebook válaszoló hívásaihoz. Részletek: 03-auth-api-key.md.
A háttér fb_comment_worker a webhook / sor alapján dolgozza fel a kommentet:
LLM-mel besorolja a kommentet a profil törzsadatcsoportjaiba (adatcsoportok, leírásokkal).
Ha van illő csoport, a kiválasztott csoportokhoz tartozó tartalombejegyzéseket olvassa ki (Facebook modul saját tára, legfeljebb 100 rekord) — ez az „adott lista”, amihez a válaszgenerálás kötődik.
A fb_commenter LLM végponttal generál választ úgy, hogy csak ezekből a szövegekből dolgozzon.
Ha nincs megfelelő csoport / üres lista: a profil fallback beállításai és LLM léphet életbe.
Az automata válasz tehát adatcsoport + tartalomlista + dedikált FB LLM; külön HTTP hívással nem indítható (webhook → sor → worker).
Jóváhagyásos felület és B2B — találatlista → kiválasztás → formázás
A Facebook komment válaszoló admin UI (és ezzel megegyezően külső rendszer fb_comment kulccsal) tipikusan:
POST /admin/fb/profiles/{profile_id}/comments/retrieve — törzs: {"query": "<komment vagy keresőszöveg>"} — dokumentum találatok (matches: fájlnév, score, content snippet).
A felhasználó / integráció a listából kiválasztott szövegblokkokkal hívja: POST /admin/fb/profiles/{profile_id}/comments/format-reply/start Kötelező mezők: query (komment), source: "rag" vagy "shop", selected_contents: string tömb (a találatok content / leírás szövegeiből összeállítva). Opcionális: post_text (poszt szövege kontextusnak).
A válasz: 201 és egy job_id. Ezután poll: GET /admin/fb/profiles/{profile_id}/comments/format-reply/status?job_id=<job_id> amíg status nem lesz done → ekkor a formatted_reply a kész válasz szöveg (vagy error).
Minden fenti útvonal: JWT vagy X-API-Key + scope fb_comment — tehát a felületen lévő „Dokumentumok keresése” (RAG) és „Keresés a shopban” ugyanilyen hitelesítéssel hívható külső rendszerből is (B2B), mint a komment lista vagy a send.
Megjegyzés: ez a tenant dokumentum / shop index alapú út; nem ugyanaz az adatforrás, mint a worker adatcsoport (FbContent) listája.
A GET .../comments rekordok our_reply mezőjét a worker vagy a jóváhagyási folyamat tölti; külső rendszer olvashatja onnan.
POST .../send törzsében opcionálisan our_reply felülírható, majd küldés (státusz: pending_approval vagy failed_manual).
Miért jön „érvénytelen vagy lejárt API kulcs” / X-API-Key hiba?
A Facebook komment /admin/fb/profiles/... végpontjai JWTvagyX-API-Key + scope fb_comment alatt futnak. Ha a kulcsos utat használod, 401 esetén a válasz detail mezője a szerveren tipikusan angol és konkrét (lásd táblázat). A saját alkalmazásod, egy proxy vagy egy lefordított / egységesített hibaüzenet összefoglalhatja ezt magyarul is (pl. „Érvénytelen vagy lejárt API kulcs. Ellenőrizze az X-API-Key fejlécet.”) — a teendő ugyanaz: fejléc + érvényes kulcs + scope + tenant.
detail (tipikus, angol)
Mit csinálj
X-API-Key or Bearer token required
Adj meg X-API-Key: rak_... headert, vagy tenant admin Bearer JWT-t.
Invalid API key
Újra másold a kulcsot (env / titokkezelő); rotate után a régi kulcs azonnal érvénytelen. Ellenőrizd, hogy a jó környezet (BASE_URL) tenantjához tartozó kulcsot használod.
API key has expired
Admin → API Keys: hosszabbítsd meg a lejáratot, vagy hozz létre új kulcsot.
API key is disabled
Kapcsold vissza a kulcsot, vagy használj másikat.
API key does not have 'fb_comment' scope
A kulcshoz add hozzá a fb_comment scope-ot (több scope egy kulcson engedélyezett).
Invalid API key format
A kulcs rak_ előtaggal kezdődjön; ne legyen felesleges idézőjel / sortörés a titokban.
Fontos: az API kulcs egy adott tenant-hoz kötött. A profile_id ennek a tenantnak a Facebook profilja kell legyen — más tenant kulcsával ugyanaz az UUID nem lesz elérhető (tipikusan 404 „Profile not found”, nem feltétlenül „invalid key”).
Részletes táblázat és általános tippek minden kulcsos végpontra: 03-auth-api-key.md.
Ha a reply_mode értékét API-n szeretnéd beállítani vagy lekérni (GET / PUT /admin/fb/profiles/{profile_id}), szükség van tenant admin JWT-re. A bejelentkezés: POST /auth/login. Részletesen: 01-auth-jwt.md.
Ha csak kommentet listázol és jóváhagyással küldesz, és van fb_comment scope-ú API kulcsod, ehhez a lépéshez nincs szükség JWT-re.
Az alábbi példákben: ACCESS_TOKEN = a login válasz access_token mezője.
Lépés A: Válaszmód (reply_mode) – GET / PUT profil
Belső UUID – a /send híváshoz ezt használd (comment_id).
fb_comment_id
Facebook komment azonosító
fb_post_id
Poszt azonosító
original_message
Bejövő komment szövege
our_reply
Generált / szerkesztett válasz szöveg (ha van)
status
pl. pending_approval, posted, failed_manual, …
processed_at
Feldolgozás időpontja
Megjegyzés: A lista audit jellegű: egy sor egy bejövő kommenthez tartozó rekord a válasz szöveggel; nem helyettesíti a teljes Facebook beszélgetésfa Graph API-ból való lekérését.
Opcionális: dokumentumtalálatok és formázott válasz (retrieve + format-reply)
Ha a our_reply nincs meg vagy felül szeretnéd állítani ugyanazzal a logikával, mint a Facebook komment válaszoló admin (RAG lista → kiválasztott blokkok → LLM), hívd ezeket X-API-Key + fb_comment scope-szal (JWT is megfelel).
Válassz egy vagy több content (vagy más, integrációdban használt) szöveget → selected_contents tömb.
POST /admin/fb/profiles/{profile_id}/comments/format-reply/start — query (komment), source: "rag" vagy "shop", selected_contents, opcionálisan post_text.
GET .../format-reply/status?job_id=... poll, amíg status nem done → formatted_reply.
Termékekhez:POST .../comments/retrieve-products ugyanígy {"query": "..."}-vel; a format-reply/start hívásnál source legyen "shop", és a selected_contents a termékblokkok szövegeiből álljon össze (ahogy az admin UI összerakja).
A kapott formatted_reply szöveget ezután a POST .../comments/{comment_id}/send törzsében our_reply mezőben is elküldheted (ha a rekord státusza engedi).
A komment státusza nem pending_approval és nem failed_manual, vagy nincs küldhető szöveg.
401
Hiányzó vagy érvénytelen X-API-Key / JWT. A válasz detail angol (pl. Invalid API key, API key has expired, API key does not have 'fb_comment' scope) — magyar összefoglaló üzenet is lehet; teendők: fent „X-API-Key hiba”, 03-auth-api-key.md.
403
Nincs jogosultság (pl. kulcs scope).
404
Ismeretlen profil vagy komment.
502
Facebook Graph API hiba a küldés során (részlet a válaszban).
Teljes folyamat: Facebook kommentek (B2B)
Ez a dokumentum bemutatja, hogyan lehet külső backend rendszerrel (CRM, ticketing, saját dashboard) a GLC-RAG-on keresztül kezelni a Facebook oldalhoz kötött komment audit folyamatot: válaszmód beállítása, kommentek listázása, majd jóváhagyásos módban a válasz elküldése a Facebookra.
Hatókör és forrás: Meta/Facebook termékintegráció; a végpontok a
/admin/fbprefix alatt futnak. A nyilvános OpenAPI (openapi.json / Redoc) nem feltétlenül tartalmazza ezeket az útvonalakat ugyanilyen részletességgel. Eltérés esetén a futó backend viselkedése és a Meta Graph API a döntő. A többi quickstart oldalhoz hasonlóan ez az oldal oktató jellegű; a hivatalos contract a szerveren elérhető API specifikáció.Folyamat áttekintése
profile_id(UUID), B2B API kulcsfb_commentscope-pal a listához és küldéshez.reply_mode:auto(automata) vagymanual(jóváhagyás szükséges) beállítása vagy lekérése JWT (tenant admin) hitelesítéssel.GET .../comments– JWT vagyX-API-Key(fb_commentscope).POST .../send– csak akkor, ha a komment státuszapending_approvalvagyfailed_manual– JWT vagyX-API-Key.Előfeltételek
profile_id: a profil belső UUID-ja. AGET /admin/fb/profiles(profillista) csak tenant admin JWT-val hívható;fb_commentAPI kulccsal nem. Aprofile_id-t tipikusan az admin UI-ból másolod, vagy egyszer rögzíted a külső rendszer konfigurációjában.fb_commentscope-pal: ez a jogosultság a komment lista és küldés mellett a Facebook modulban a RAG dokumentumkeresés (…/comments/retrieve), a shop termékkeresés (…/comments/retrieve-products) és a format-reply végpontokra is elég — nem kell ehhez különragvagyshoppingscope a Facebook válaszoló hívásaihoz. Részletek: 03-auth-api-key.md.Hitelesítés összefoglaló
reply_mode)GET/PUT /admin/fb/profiles/{profile_id}GET /admin/fb/profilesGET /admin/fb/profiles/{profile_id}/commentsX-API-Key+ scopefb_commentPOST /admin/fb/profiles/{profile_id}/comments/{comment_id}/sendPOST /admin/fb/profiles/{profile_id}/comments/retrievefb_comment)POST /admin/fb/profiles/{profile_id}/comments/retrieve-productsPOST .../comments/format-reply/start+GET .../comments/format-reply/statusVálaszszöveg (
our_reply) — automata worker és B2B (retrieve / format-reply) Automatikus mód (háttér worker)
A háttér
fb_comment_workera webhook / sor alapján dolgozza fel a kommentet:fb_commenterLLM végponttal generál választ úgy, hogy csak ezekből a szövegekből dolgozzon.Az automata válasz tehát adatcsoport + tartalomlista + dedikált FB LLM; külön HTTP hívással nem indítható (webhook → sor → worker).
Jóváhagyásos felület és B2B — találatlista → kiválasztás → formázás
A Facebook komment válaszoló admin UI (és ezzel megegyezően külső rendszer
fb_commentkulccsal) tipikusan:POST /admin/fb/profiles/{profile_id}/comments/retrieve— törzs:{"query": "<komment vagy keresőszöveg>"}— dokumentum találatok (matches: fájlnév, score,contentsnippet).POST /admin/fb/profiles/{profile_id}/comments/retrieve-products— törzs:{"query": "..."}— termék találatok (név, ár, link, stb.).POST /admin/fb/profiles/{profile_id}/comments/format-reply/startKötelező mezők:
query(komment),source:"rag"vagy"shop",selected_contents: string tömb (a találatokcontent/ leírás szövegeiből összeállítva). Opcionális:post_text(poszt szövege kontextusnak).201és egyjob_id. Ezután poll:GET /admin/fb/profiles/{profile_id}/comments/format-reply/status?job_id=<job_id>amíg
statusnem leszdone→ ekkor aformatted_replya kész válasz szöveg (vagyerror).Minden fenti útvonal: JWT vagy
X-API-Key+ scopefb_comment— tehát a felületen lévő „Dokumentumok keresése” (RAG) és „Keresés a shopban” ugyanilyen hitelesítéssel hívható külső rendszerből is (B2B), mint a komment lista vagy asend.Megjegyzés: ez a tenant dokumentum / shop index alapú út; nem ugyanaz az adatforrás, mint a worker adatcsoport (
FbContent) listája.our_replya listában és küldés GET .../commentsrekordokour_replymezőjét a worker vagy a jóváhagyási folyamat tölti; külső rendszer olvashatja onnan.POST .../sendtörzsében opcionálisanour_replyfelülírható, majd küldés (státusz:pending_approvalvagyfailed_manual).Miért jön „érvénytelen vagy lejárt API kulcs” / X-API-Key hiba?
A Facebook komment
/admin/fb/profiles/...végpontjai JWT vagyX-API-Key+ scopefb_commentalatt futnak. Ha a kulcsos utat használod, 401 esetén a válaszdetailmezője a szerveren tipikusan angol és konkrét (lásd táblázat). A saját alkalmazásod, egy proxy vagy egy lefordított / egységesített hibaüzenet összefoglalhatja ezt magyarul is (pl. „Érvénytelen vagy lejárt API kulcs. Ellenőrizze az X-API-Key fejlécet.”) — a teendő ugyanaz: fejléc + érvényes kulcs + scope + tenant.detail(tipikus, angol)X-API-Key or Bearer token requiredX-API-Key: rak_...headert, vagy tenant admin Bearer JWT-t.Invalid API keyAPI key has expiredAPI key is disabledAPI key does not have 'fb_comment' scopefb_commentscope-ot (több scope egy kulcson engedélyezett).Invalid API key formatrak_előtaggal kezdődjön; ne legyen felesleges idézőjel / sortörés a titokban.Fontos: az API kulcs egy adott tenant-hoz kötött. A
profile_idennek a tenantnak a Facebook profilja kell legyen — más tenant kulcsával ugyanaz az UUID nem lesz elérhető (tipikusan 404 „Profile not found”, nem feltétlenül „invalid key”).Részletes táblázat és általános tippek minden kulcsos végpontra: 03-auth-api-key.md.
Lépés 0: Bejelentkezés (JWT) – opcionális, csak profil / válaszmódhoz
Ha a
reply_modeértékét API-n szeretnéd beállítani vagy lekérni (GET/PUT /admin/fb/profiles/{profile_id}), szükség van tenant admin JWT-re. A bejelentkezés:POST /auth/login. Részletesen: 01-auth-jwt.md.Ha csak kommentet listázol és jóváhagyással küldesz, és van
fb_commentscope-ú API kulcsod, ehhez a lépéshez nincs szükség JWT-re.Az alábbi példákben:
ACCESS_TOKEN= a login válaszaccess_tokenmezője.Lépés A: Válaszmód (
reply_mode) – GET / PUT profil Jelentés
automanualpending_approval); a Facebookra aPOST .../comments/{comment_id}/sendhívással (vagy admin UI) lehet elküldeni.PUT – mód beállítása
Path:
PUT /admin/fb/profiles/{profile_id}Request body (példa)
autovagymanualPython
TypeScript
cURL
PHP
GET – aktuális mód és profil adatok
Path:
GET /admin/fb/profiles/{profile_id}A válasz tartalmazza a
reply_modemezőt (és pl.id,fb_page_id,name,enabled).Python
TypeScript
cURL
PHP
Lépés B: Kommentek listája
Path:
GET /admin/fb/profiles/{profile_id}/commentsQuery paraméterek
original_messageésour_replymezőkbenpending_approval,posted,failed_manual)Válasz – egy komment mezői (kivonat)
/sendhíváshoz ezt használd (comment_id).pending_approval,posted,failed_manual, …Megjegyzés: A lista audit jellegű: egy sor egy bejövő kommenthez tartozó rekord a válasz szöveggel; nem helyettesíti a teljes Facebook beszélgetésfa Graph API-ból való lekérését.
Példa – csak jóváhagyásra várók (B2B kulcs)
Python
TypeScript
cURL
PHP
Opcionális: dokumentumtalálatok és formázott válasz (
retrieve+format-reply) Ha a
our_replynincs meg vagy felül szeretnéd állítani ugyanazzal a logikával, mint a Facebook komment válaszoló admin (RAG lista → kiválasztott blokkok → LLM), hívd ezeketX-API-Key+fb_commentscope-szal (JWT is megfelel).POST /admin/fb/profiles/{profile_id}/comments/retrieve— törzs:{"query": "<szöveg>"}→matches[](content,filename, …).content(vagy más, integrációdban használt) szöveget →selected_contentstömb.POST /admin/fb/profiles/{profile_id}/comments/format-reply/start—query(komment),source:"rag"vagy"shop",selected_contents, opcionálisanpost_text.GET .../format-reply/status?job_id=...poll, amígstatusnemdone→formatted_reply.Termékekhez:
POST .../comments/retrieve-productsugyanígy{"query": "..."}-vel; aformat-reply/starthívásnálsourcelegyen"shop", és aselected_contentsa termékblokkok szövegeiből álljon össze (ahogy az admin UI összerakja).Python
TypeScript
cURL
PHP
A kapott
formatted_replyszöveget ezután aPOST .../comments/{comment_id}/sendtörzsébenour_replymezőben is elküldheted (ha a rekord státusza engedi).Lépés C: Válasz küldése Facebookra (
send) Path:
POST /admin/fb/profiles/{profile_id}/comments/{comment_id}/sendid(belső UUID), nem afb_comment_id.Request body (opcionális)
Ha elhagyod a body-t vagy az
our_replyüres, a backend a rekordban tároltour_replyszöveget küldi – annak is nem üres stringnek kell lennie.Feltételek és hibák
pending_approvalés nemfailed_manual, vagy nincs küldhető szöveg.X-API-Key/ JWT. A válaszdetailangol (pl.Invalid API key,API key has expired,API key does not have 'fb_comment' scope) — magyar összefoglaló üzenet is lehet; teendők: fent „X-API-Key hiba”, 03-auth-api-key.md.Python
TypeScript
cURL
PHP
Kapcsolódó dokumentumok
fb_comment)