Facebook-Embed-Generator
Einleitung
Der Toollect Facebook Embed Generator verwandelt jede öffentliche Facebook-Post-, Video- oder Seiten-URL mit einem Klick in den offiziellen JavaScript-SDK-Einbettungscode, den Facebook dokumentiert – das fb-post / fb-video / fb-page-div plus den sdk.js-Loader – mit Live-Vorschau, die direkt von Facebooks eigenem SDK gerendert wird, bevor du kopierst.
Die Hürde, die er beseitigt, kennt jeder, der Facebook-Code von Hand eingefügt hat. Facebooks Konfigurator versteckt das Page Plugin, verteilt Post- und Video-Optionen auf getrennte Seiten und tauscht iframe- und SDK-Formen ohne Erklärung der Trade-offs. Das handgeschriebene div schlägt still fehl, wenn ein data--Attribut falsch geschrieben ist und der Post als einfacher Link rendert. Dieses Tool zeigt Post, Video und Page Plugin nebeneinander, legt jedes dokumentierte Plugin-Attribut offen, schreibt deine Sprachwahl direkt in die Loader-URL und zeigt das echte Rendering im selben Browser, der deine Besucher bedient.
Jeder Code-Pfad ist bewusst SDK-only. Das SDK ist das Format, das Facebook für alle drei Plugin-Typen pflegt, das einzige mit Sprachunterstützung und das einzige, das Page-Plugin-Tabs und Sizing konsistent halten kann. Der Generator fügt fb-root und Loader hinzu, wenn du sie brauchst, und lässt sie weg, wenn deine Seite das SDK bereits lädt, hält die Vorschau ehrlich bei Adblockern und privaten Inhalten und schickt deinen Link nie über einen Toollect-Server.
Anwendungsfälle
Facebook-Inhalte einzubetten taucht an mehr Orten auf als im Blog, und die drei Tabs teilen die Arbeit natürlich auf.
Blogs und redaktionelle Inhalte
Ein Kommentar-Post, der einen öffentlichen Post zitiert, ein Kulturartikel, der ein virales Video wiederverwendet, ein Review, das die Timeline einer Marke als Social Proof einbettet – die klassischen Fälle. Der Post-Modus mit 500 Pixeln Standardbreite deckt die meisten Spalten ab; der Video-Modus stellt den Player in den Vordergrund; das Page Plugin zeigt eine Live-Timeline ohne Screenshots.
Newsrooms und Live-Berichterstattung
Reporter ziehen offizielle Statements und Augenzeugen-Posts in die laufende Berichterstattung. Geschwindigkeit zählt, und Verifikation ebenso – der Generator normalisiert mobile Share-Links wie m.facebook.com und tracking-lastige URLs zu einer kanonischen Referenz, und die Vorschau bestätigt, dass der Post noch rendert, bevor die Story live geht.
Marketing-Seiten und Portfolios
Kundenbewertungen als eingebettete Page-Timelines, Launch-Videos als Player auf der Seite, Ankündigungsposts als Karten. Die Sprachauswahl rendert das umgebende Chrome in der Sprache der Besucher, und das Weglassen des SDK-Loaders hält Seiten, die Facebooks SDK bereits laden, frei von doppelten Skripten.
Dokumentation und Community-Seiten
Release Notes mit Launch-Post, Docs mit Facebook-Gruppen-Ankündigung, Event-Seiten mit Events-Tab einer Page. Show Text und Lazy-Loading lassen schwere Seiten ruhig, bis sie nahe gescrollt werden.
So funktioniert es
Das Tool läuft in fünf Schritten:
- URL parsen und klassifizieren – die Eingabe wird gegen die Facebook-Link-Grammatik geprüft: numerische IDs
5–20Ziffern oderpfbid-IDs, Usernames2–50Zeichen, Tabs[a-z][a-z0-9_]*und die drei offiziellen Hostsfacebook.commit jeder Subdomain,fb.watchundfb.me. Tracking-Query-Keys werden gelesen und für das Routing ignoriert – die neu aufgebaute kanonische URL trägt sie nie. Routen ohne ID wiefacebook.com/watchohnevoderfb.watchohne Kurzcode werden abgelehnt. - Plugin-Typ wählen –
post/photo/group-post→ Post,video/reel→ Video,page→ Page Plugin. Die Tab-Leiste folgt dem Link – ein Watch-Link wechselt automatisch zu Video, ein Page-Link zu Page Plugin – und manuelles Tab-Wechseln löscht veraltete Ausgabe statt zurückzuspringen. - Optionen sammeln – Sprache aus dem Dropdown des Tabs, Breite und Höhe aus den Zahlenfeldern, Page-Checkboxen für Tabs und Chrome, Video-Schalter für Vollbild, Autoplay und Untertitel. Jede Änderung clampet in den gültigen Bereich, schreibt ins Feld zurück und regeneriert sofort.
- Offizielles Markup bauen – deine Optionen werden zu
data-*-Attributen amfb-*-div und für Page Plugin trägt die Loader-URL deine Sprache alshttps://connect.facebook.net/{locale}/sdk.js#xfbml=1&version=v26.0. Keine iframe-URL wird gebaut – das SDK konsumiert die div-Attribute beim Parsen. - Vorschau rendern – der Generator injiziert das div plus
fb-rootin den Vorschau-Host, lädt oder lädtsdk.jsfür die gewählte Locale neu, ruftFB.XFBML.parseauf und beobachtet das resultierende iframe. Drei Ergebnisse werden ehrlich gemeldet – Erfolg, Adblocker oder nicht abschließbares Rendering.
Jede Optionsänderung baut die ganze Kette neu – neue Attribute, frische Code-Box, neu geparste Vorschau – sodass der kopierte Code immer zu dem passt, was du siehst.
Unterstützte URL-Formate
Der Generator akzeptiert jede URL-Form, die einen öffentlichen Post, ein Video oder eine Page auf Facebooks drei offiziellen Hosts identifiziert, und lehnt alles andere mit spezifischer Meldung ab. Schema und www. sind optional; mobile Subdomains werden normalisiert.
Akzeptierte Formate
| Format | Beispiel | Tab | Ergebnis |
|---|---|---|---|
| Kanonischer Post | facebook.com/username/posts/1234567890123456 |
Beitrag | fb-post für diesen Post |
| pfbid Post | facebook.com/nike/posts/pfbid0ABCDEF12345 |
Beitrag | fb-post für diesen Post |
| Share Post | facebook.com/share/p/Ab12CdEfGh/ |
Beitrag | fb-post für diesen Post |
| Story / Permalink | facebook.com/story.php?story_fbid=123&id=456 / permalink.php?story_fbid=... |
Beitrag | fb-post für diesen Post |
| Foto | facebook.com/username/photos/1234567890123456 / photo.php?fbid=... / photo/?fbid=... |
Beitrag | fb-post für dieses Foto |
| Gruppen-Post | facebook.com/groups/999888777666/posts/111222333444555 |
Beitrag | fb-post für diesen Gruppen-Post |
| Kanonisches Video | facebook.com/username/videos/1234567890123456 |
Video | fb-video für dieses Video |
| Watch-Link | facebook.com/watch/?v=10153231379946729 |
Video | fb-video für dieses Video |
| Reel | facebook.com/username/reels/Ab12CdEfGhIj / facebook.com/reel/Ab12Cd... |
Video | fb-video für dieses Reel |
| Page per Username | facebook.com/facebook |
Page Plugin | fb-page für diese Page |
| Page per ID | facebook.com/profile.php?id=100001234567890 |
Page Plugin | fb-page für diese Page |
| Page Tab-Ansicht | facebook.com/facebook/videos |
Page Plugin | fb-page für diese Page – Tab-Suffix ignoriert |
| Kurz-Domain | fb.watch/AbC12dEfXy |
— | Abgelehnt – Kurzlinks tragen kind:"short" und benötigen die volle URL |
| Weiterleitungs-Domain | fb.me/nike |
Page Plugin | fb-page für diese Page |
Der abschließende Slash, Hash-Fragment und Query-String nach der ID werden toleriert und verworfen; View-Suffixe wie ein numerisches Tab-Segment nach einem Username werden als Page-Tab-Ansicht behandelt, nicht als separate Ressource.
Abgelehnte Formate
| URL-Form | Warum abgelehnt |
|---|---|
fb.watch/AbC12dEfXy |
Offizieller Kurzlink – Ziel kann nicht lokal aufgelöst werden, Facebook dokumentiert keine Embed-Form für Kurzcodes |
facebook.com/sharer/sharer.php?u=... / l.php / dialog / tr usw. |
Reservierte Tool-Routen – Login, Sharing, Tracking – kein einbettbarer Inhalt |
facebook.com/hashtag/something / search/top/?q=... |
Discovery-Routen – kein einzelner Post oder Page |
example.com/facebook/nike oder anderer fremder Host |
Keine Facebook-Domain |
| Text, der keine URL ist | Kein Host zum Matchen |
Der fb.watch-Fall verdient Hervorhebung, weil der App-Share-Button noch diese Form erzeugt. Der Generator lehnt sie bewusst mit der dedizierten Kurzlink-Meldung ab und bittet, den Link zu öffnen und die volle Post- oder Video-URL zu kopieren. Das Einfügen der expandierten URL gelingt sofort.
Anatomie des Einbettungscodes
Die Ausgabe ist der Code, den Facebook dokumentiert, mit deinen Optionen angewandt. Ein Post-Embed mit Defaults sieht so aus:
<div class="fb-post" data-href="https://www.facebook.com/facebook/posts/10153231379946729" data-width="500"></div>
<div id="fb-root"></div>
<script async defer src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v26.0"></script>
Durch die Teile:
- Die Plugin-div-Klasse –
fb-post,fb-videooderfb-pagesagt dem SDK, welches Plugin zu instanziieren ist. Eine Klasse pro Embed. data-href– die kanonische URL aus dem vorherigen Abschnitt, Ampersand-escapet. Das einzige Pflichtattribut für alle drei Plugins.data-width(Post und Video) – die gewünschte Breite in Pixeln. Post akzeptiert350–750Standard500in diesem Tool, Video220–1920Standard500. Facebooks SDK skaliert die Karte nach Möglichkeit auf diese Breite.data-show-text– vorhanden, wenn Show post text angehakt ist. Facebook dokumentiert es für Posts und Videos mit Foto; ohne kann der Text verborgen sein.data-lazy– vorhanden, wenn Lazy-load angehakt ist. Verschiebt das Rendering bis das Embed nahe gescrollt wird.data-allowfullscreen/data-autoplay/data-show-captions(nur Video) –allowfullscreenaktiviert den Vollbild-Button,autoplaystartet stummgeschaltete Wiedergabe beim Seitenladen auf Desktop,show-captionszeigt Untertitel standardmäßig, wenn auf Desktop verfügbar. Alle drei fehlen, wenn aus.data-tabs/data-height/data-small-header/data-adapt-container-width/data-hide-cover/data-hide-cta/data-show-facepile(nur Page Plugin) –tabslistet sichtbare Tabs wietimeline,events,messagesStandardtimeline,heightStandard500, die Booleans bilden die Chrome-Toggles direkt ab.- Der Loader –
fb-rootplussdk.js#xfbml=1&version=v26.0vonconnect.facebook.net/{locale}/.en_USist ein Beispiel – deine Sprachwahl schreibt das Locale-Segment. Die CheckboxInclude the fb-root div and sdk.js loaderentfernt diesen ganzen Block, wenn deine Seite das SDK bereits lädt.
Ein Page Plugin mit nicht-default Einstellungen zeigt den volleren Attributsatz:
<div class="fb-page" data-href="https://www.facebook.com/facebook" data-tabs="timeline,events" data-width="340" data-height="500" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-hide-cta="false" data-show-facepile="true"></div>
Optionen für die Einbettung
Jedes Control bildet auf ein Attribut ab. Defaults in Klammern.
Sprache (Standard deine Toollect-Seitensprache – zh-hant wird zh_TW, zh-hans zh_CN, en en_US und ebenso für de, es, fr, it, ja, nl, pt, sv) – zeigt 60 Locales von en_US bis af_ZA mit lokalisierten Namen pro Toollect-Seitensprache. Jede explizite Auswahl, Englisch eingeschlossen, wird in die Loader-URL geschrieben. Das SDK lokalisiert den Rand des Embeds – Zeitstempel, Like-Button-Labels – nie den Post-Text selbst.
Breite (Post 500, Video 500, Page 340) – als exakte Zahl getippt, beim Verlassen des Feldes in den gültigen Bereich geclampt. Post 350–750, Video 220–1920, Page 180–500. Werte außerhalb springen zur nächsten Grenze – 5000 bei Video wird 1920.
Höhe (Page 500) – nur Page Plugin, 70–2048. Posts und Videos tragen kein Höhenattribut – das SDK dimensioniert ihre Karten aus Breite und Inhalt.
Beitragstext mit Fotos und Videos anzeigen (aus) – schreibt data-show-text="true" für Post, bei Video mit Hinweis (nur Desktop) im Label, passend zu Facebooks Hinweis, dass der Text-Toggle nur das Desktop-Rendering betrifft.
Lazy laden bis nahe gescrollt (aus, alle Tabs) – schreibt data-lazy="true".
Vollbildwiedergabe erlauben (aus, Video) – schreibt data-allowfullscreen="true".
Beim Laden der Seite automatisch abspielen (stummgeschaltet, nur Desktop) (aus, Video) – schreibt data-autoplay="true". Facebook dokumentiert dies als stummgeschaltetes Autoplay nur auf Desktop.
Untertitel standardmäßig anzeigen, wenn verfügbar (nur Desktop) (aus, Video) – schreibt data-show-captions="true", nur Desktop.
Anzuzeigende Tabs (Chronik, Page Plugin) – drei Checkboxen timeline / events / messages vereint als data-tabs="timeline,events,messages". Nicht angehakte Tabs fehlen einfach in der Liste.
Kleinen Header verwenden / An Containerbreite anpassen / Titelbild ausblenden / Benutzerdefinierten Call-to-Action ausblenden / Profilbilder von Freunden anzeigen (Page Plugin) – jedes schreibt seinen data-*-Boolean. Adapt ist standardmäßig an; Facepile ist an.
fb-root-Div und sdk.js-Loader einbeziehen (an) – steuert, ob der Loader-Block angehängt wird. Seiten, die sdk.js global bereits laden, sollten ihn abhaken.
Sprache und Internationalisierung
Facebooks FAQ zu eingebetteten Posts und die Internationalisierungsanleitung des JavaScript SDK sagen dasselbe – die Anzeigesprache sozialer Plugins kommt aus dem Locale-Segment der sdk.js-URL. Dieses Tool macht das sichtbar.
Deine Sprachauswahl fließt an zwei Stellen ein:
- Der generierte Code –
https://connect.facebook.net/{locale}/sdk.js#xfbml=1&version=v26.0mitlocalewieen_US,zh_TW,fr_FRoderja_JP. - Die Live-Vorschau – Wechsel im Dropdown baut den Vorschau-Host neu, entfernt jedes zuvor geladene SDK-Skript mit anderem Locale, löscht
window.FBund lädt das neue Locale frisch, bevorFB.XFBML.parseaufgerufen wird.
Der Standard folgt automatisch deiner Toollect-Seitensprache – der Besuch von toollect.com/zh-hant/tools/facebook-embed-generator/ wählt zh_TW vor, zh-hans zh_CN, ja ja_JP und die europäischen Sprachen ihre Territory-Form (de→de_DE, fr→fr_FR usw.), sonst Fallback en_US. Es gibt keine Automatic-Option – Facebook verlangt ein explizites Locale, daher schreibt das Tool immer eines.
Was sich ändert und was nicht:
| Aspekt | Folgt dem Locale | Bleibt wie verfasst |
|---|---|---|
| Zeitstempel-Format | Ja | — |
| Like- / Teilen-Button-Labels | Ja | — |
| Post-Text, Video-Titel, Page-Name | — | Ja |
| Kommentare zum Post | — | Ja |
Unterstützte Anzeigesprachen
Facebook dokumentiert rund hundert Locales für das SDK. Das Dropdown bietet die sechzig meistgenutzten, mit pro Toollect-Seitensprache lokalisierten Namen. Der vollständige Satz umfasst:
af_ZA Afrikaans · ar_AR Arabisch · az_AZ Aserbaidschanisch · bg_BG Bulgarisch · bn_IN Bengalisch · bs_BA Bosnisch · ca_ES Katalanisch · cs_CZ Tschechisch · da_DK Dänisch · de_DE Deutsch · el_GR Griechisch · en_GB Englisch (UK) · en_US Englisch (US) · es_ES Spanisch (Spanien) · es_LA Spanisch · et_EE Estnisch · eu_ES Baskisch · fa_IR Persisch · fi_FI Finnisch · fr_FR Französisch · gl_ES Galicisch · gu_IN Gujarati · he_IL Hebräisch · hi_IN Hindi · hr_HR Kroatisch · hu_HU Ungarisch · hy_AM Armenisch · id_ID Indonesisch · is_IS Isländisch · it_IT Italienisch · ja_JP Japanisch · jv_ID Javanisch · ka_GE Georgisch · km_KH Khmer · kn_IN Kannada · ko_KR Koreanisch · lo_LA Laotisch · lt_LT Litauisch · lv_LV Lettisch · mk_MK Mazedonisch · ml_IN Malayalam · mr_IN Marathi · ms_MY Malaiisch · my_MM Birmanisch · nb_NO Norwegisch · ne_NP Nepalesisch · nl_NL Niederländisch · pa_IN Punjabi · pl_PL Polnisch · pt_BR Portugiesisch (Brasilien) · pt_PT Portugiesisch (Portugal) · ro_RO Rumänisch · ru_RU Russisch · si_LK Singhalesisch · sk_SK Slowakisch · sl_SI Slowenisch · sq_AL Albanisch · sr_RS Serbisch · su_ID Sundanesisch · sv_SE Schwedisch · sw_KE Suaheli · ta_IN Tamil · te_IN Telugu · th_TH Thai · tl_PH Filipino · tr_TR Türkisch · uk_UA Ukrainisch · ur_PK Urdu · vi_VN Vietnamesisch · zh_CN Chinesisch (vereinfacht) · zh_HK Chinesisch (Hongkong) · zh_TW Chinesisch (traditionell)
Jedes Locale jenseits des Dropdowns ist per gleichem Muster gültig – https://connect.facebook.net/{locale}/sdk.js – aber die sechzig oben decken jede Sprache ab, die Toollect selbst ausliefert, sodass der Code selten editiert werden muss.
Verwendung
- Facebook-URL einfügen ins Eingabefeld – jedes akzeptierte Format aus den Tabellen oben, inklusive
m.facebook.comundfb.me-Kurzlinks, die zu einer Page auflösen. Schema undwww.sind optional. - Generieren drücken oder Enter. Der Code erscheint in der Ausgabebox und die Vorschau öffnet automatisch und zeigt das echte SDK-Rendering. Die URL-Leiste treibt auch den Tab – ein Watch-Link schaltet zu Video, ein Page-Link zu Page Plugin.
- Tab bei Bedarf wählen – Post für Posts, Fotos und Gruppen-Posts; Video für Videos und Reels; Page Plugin für Seiten. Wechseln regeneriert mit dem Optionsset des Tabs, unpassende Tabs löschen veraltete Ausgabe.
- Sprache setzen – der Standard passt bereits zu deiner Seitensprache, aber du kannst jede der sechzig Locales wählen. Generierte Loader-URL und Vorschau wechseln sofort.
- Verbleibende Optionen anpassen – Breite, Höhe für Page, Header- und Cover-Toggles, Lazy Loading. Jede Änderung regeneriert; Code-Box und Vorschau driften nie auseinander.
- Vorschau-Diagnose prüfen – erscheint keine Karte, sagt die Warnung über der Ausgabe, ob das SDK blockiert wurde, der Inhalt nicht rendern kann oder die URL auf eine persönliche Timeline statt einer Page zeigt.
- Code kopieren und dort in deine Seite einfügen, wo das Embed erscheinen soll. Lädt deine Seite
sdk.jsbereits, deaktiviere die Loader-Inklusion, um ein Duplikat zu vermeiden.
Eingaben ohne unterstütztes Format löschen die Ausgabe und erklären sich im roten Fehlerbereich – entweder die ungültige-Link-Meldung oder die Kurzlink-Meldung. Löschen setzt Eingabe, Code und Vorschau in einem Schritt zurück.
Schritt-für-Schritt-Anleitung
Folge einem echten Link durch alle drei Tabs.
Schritt 1 – Post-Link wie von der App geteilt einfügen. Kopiere eine Post-URL mit Tracking-Parametern:
https://m.facebook.com/facebook/posts/pfbid0AbCdEfGhIjKlMnOpQrStUvWxYz1234567890?__tn__=K-R
Drücke Generieren. Der Parser liest an der m.-Subdomain und __tn__-Tracking vorbei zu facebook, Post pfbid0AbCdEfGhIjKlMnOpQrStUvWxYz1234567890, der Tab bleibt Post und der Code zeigt data-width="500" mit en_US-Loader, weil dieser Walkthrough auf der englischen Seite ist. Die Vorschau öffnet und die Karte rendert mit 500 Pixeln.
Schritt 2 – Sprache wechseln. Wechsle die Post-Sprache zu Chinesisch Traditionell zh_TW. Der Loader wird zu https://connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v26.0 und die Vorschau lädt das SDK neu – der Zeitstempel am Post wechselt in seine chinesische Form, während der Post-Text exakt wie verfasst bleibt.
Schritt 3 – Verengen. Tippe 600 in Breite und verlasse das Feld. Das div erhält data-width="600" und die Karte schrumpft. Tippe 9999 und verlasse – das Feld springt auf 750, das Post-Maximum.
Schritt 4 – Zu Video wechseln. Ersetze im Input die Post-URL durch ein Video:
https://www.facebook.com/facebook/videos/10153231379946729/
Drücke Generieren. Das Tool schaltet zu Video, der Code wird zu <div class="fb-video" data-href="https://www.facebook.com/facebook/videos/10153231379946729" data-width="500"> und das Sprachen-Dropdown zeigt denselben en_US-Standard. Hake Autoplay und Show captions an – jedes schreibt sein data-* mit dem Desktop-only-Hinweis im Label.
Schritt 5 – Page Plugin. Füge https://www.facebook.com/facebook ein und generiere. Der Page-Plugin-Tab öffnet mit data-tabs="timeline" und vollem Chrome-Set. Hake Events und Messages an – das Attribut wird zu data-tabs="timeline,events,messages". Ändere Breite zu 500 und Höhe zu 700 – beide Attribute aktualisieren sich. Die Vorschau zeigt Timeline, Cover und Facepile exakt wie der Code auf deiner Seite.
Schritt 6 – Kopieren und ausliefern. Drücke Kopieren und füge in eine schlichte HTML-Seite ein, die bereits sdk.js lädt – deaktiviere vor dem Kopieren den Loader. Öffne die Seite – Post, Video und Page rendern jeweils in den gewählten Breiten und Sprachen.
Vorschau und Diagnose
Die Vorschau führt Facebooks echtes sdk.js gegen dein exaktes div aus buildSdkCode aus, daher schlägt sie exakt dort fehl, wo deine Seite fehlschlagen wird. Der Host zeigt einen Spinner, während sdk.js lädt und FB.XFBML.parse läuft, dann erscheint eines von vier Ergebnissen:
| Zustand | Was es bedeutet | Was zu tun ist |
|---|---|---|
| Karte / Video / Timeline rendert | Das Embed ist gültig und öffentlich | Kopieren und einfügen – dasselbe Rendering erscheint auf deiner Seite |
| "Das Facebook SDK konnte nicht geladen werden — oft ein Adblocker" | Der Browser konnte connect.facebook.net/{locale}/sdk.js gar nicht laden |
connect.facebook.net im Blocker auf die Whitelist setzen oder ein sauberes privates Fenster versuchen. Das veröffentlichte Embed wird für Besucher mit diesem Blocker gleich scheitern |
| "Facebook hat die Vorschau nicht innerhalb von 15 Sekunden gerendert" | Das SDK lud, produzierte aber kein iframe | Der Inhalt ist möglicherweise nicht öffentlich, alters- oder länderbeschränkt, gelöscht oder der Autor hat das Einbetten deaktiviert. Original-Link auf facebook.com öffnen – wenn er dort sichtbar ist, aber nicht hier, ist das Einbetten dort deaktiviert |
| "Diese URL ist möglicherweise ein persönliches Profil — Page Plugin funktioniert nur zuverlässig mit Facebook-Seiten" | Das SDK renderte ein iframe, das mehrere Polls bei 0 oder unter 70 Pixeln blieb, oder FB.Event meldete einen Render-Fehler |
Das Page Plugin ist für Seiten gedacht – persönliche Timelines teilen dieselben URL-Formen wie /username und profile.php?id=..., daher würde eine statische Prüfung echte Seiten fehlklassifizieren. Probiere eine bekannte Page wie facebook.com/facebook – rendert diese, markiert die Warnung korrekt eine persönliche URL |
Beide zeitbasierten Warnungen feuern nur nach großzügigen Wartezeiten – zwanzig Sekunden für den SDK-Download, fünfzehn weitere für das Rendering – sodass langsame Verbindungen keine Fehlalarme auslösen. Ein einbettbarer Post rendert deutlich innerhalb dieser Fenster, und ein persönliches Page-Plugin zeigt die gelbe Warnung etwa drei Sekunden, nachdem das iframe bei Nullgröße bleibt.
Ein Detail, das sich zu wissen lohnt: Der Generator verfolgt loadedLocale. Sprachwechsel nach erfolgreichem Rendering entfernt das vorherige sdk.js-Script-Tag, löscht window.FB und lädt das neue Locale frisch vor dem Parsen. Zuvor gerenderte Karten des alten Locales werden aus dem Vorschau-Host gelöscht, bevor neu geparst wird, sodass die Vorschau immer zur Loader-URL passt, die du kopierst.
Profi-Tipps
- Mit dem Facebook URL Parser koppeln. Der Parser analysiert und bereinigt einen Link – Typ, Username, ID, entfernte Tracking-Keys – während dieser Generator den sauberen Link in Code verwandelt. Mit dem Parser archivieren, mit dem Generator veröffentlichen.
- Ein Loader, viele Embeds. Seiten mit mehreren Facebook-Embeds sollten
sdk.jseinmal laden – erstes Embed mit Loader angehakt generieren, die restlichen ohne, oder das SDK selbst im Site-Template laden und überall weglassen. Dasfb-root-div wird ebenfalls nur einmal pro Seite benötigt. - Für die Spalte designen, dann Breite setzen. Facebook-Karten kappen visuell um die Breiten in der Optionstabelle; die Vorschau zeigt das echte Ergebnis bei deiner Containergröße, bevor du committest. Tippe einen exakten Pixelwert –
567ist gültig – und der Clamp korrigiert nur, falls er den dokumentierten Bereich verlässt. - Video-Modus für clip-lastige Posts nutzen. Ein Video via Post-Plugin rendert als statische Karte – via
fb-videoals Player mit Autoplay- und Untertitel-Controls, die das Plugin dokumentiert. - Sprache explizit pinnen. Das Chrome dem Host-
<html lang>zu überlassen macht die Ausgabe vom Einfügeort abhängig. Jede explizite Auswahl,en_USeingeschlossen, schreibt das Locale in den Code und reproduziert dieselben Labels unabhängig vom Host. - Schwere Seiten lazy laden. Ein Artikel mit drei Page-Plugin-Timelines profitiert direkt von
data-lazy– das SDK verschiebt das Parsen, bis das Embed nahe gescrollt wird. - Page-Plugin-Tabs minimal halten. Jeder zusätzliche Tab erhöht Höhe und Netzwerkkosten –
timelineallein ist das schnellste initiale Rendering;eventsundmessagesnur hinzufügen, wenn die Page sie wirklich nutzt.
Alternativen
Wie sonst bekommt man Facebook-Inhalte auf die Seite?
| Methode | Offizielles Markup | Optionsabdeckung | Live-Vorschau | Abhängigkeiten |
|---|---|---|---|---|
| Dieses Tool | Ja – SDK-div mit dokumentiertem data-* |
Vollständig inkl. 60 Sprachen, Page-Tabs und Player-Controls | Ja, mit Drei-Zustands-Diagnose | Keine – Browser zu Facebook direkt |
Facebooks Page-Plugin-Konfigurator (developers.facebook.com) |
Ja – dasselbe SDK-div | Nur Page, keine Post/Video-Vereinigung, begrenzte Breitenhilfe | Nur im Konfigurator | Facebook-Konto |
Handgeschriebenes fb-*-div + sdk.js |
Korrekt geformt, wenn sorgfältig | Was immer du tippst – leicht zu vertippen | Nein | sdk.js |
Eigenständiges iframe plugins/post.php-URL |
Legacy-iframe-Form | Teilmenge – keine Sprache, kein Lazy, keine Page-Tabs als data- |
Nein | Keine |
Facebook Graph API (/{id}?fields=... + eigener Renderer) |
Nein – nur JSON | Total, selbst gebaut | Selbst bauen | App, Token, Review |
| Drittanbieter-Embed-Services | Ihr Wrapper-Markup | Variiert | Manchmal | Ihr Skript und Tracking |
Facebooks eigener Konfigurator ist die engste Alternative und Quelle desselben data-*-Vokabulars – aber er trennt Post, Video und Page auf verschiedene Seiten, bietet keine persönliche-vs-Page-Warnung und produziert nie eine Post/Video/Page-Vereinigung mit der vollen Sprachliste des Tools. Die Graph-API-Route kauft totale Kontrolle zum Preis einer App, eines Tokens und laufender Review und überlässt das Rendering dennoch dir. Drittanbieter-Services schieben eigene Skripte dazwischen. Der Generator besetzt die praktische Mitte – offizielles Markup, volle Optionen, sofortige visuelle Bestätigung.
Im Vergleich zu den offiziellen APIs
Zwei offizielle Oberflächen berühren Facebook-Einbettungen, und der Generator baut direkt auf der freundlicheren, schlüssellosen auf.
| Fähigkeit | Social Plugins + JavaScript SDK | Graph API |
|---|---|---|
| Zweck | URL → gerendertes Embed, clientseitig | Vollständige Plattformdaten und Publishing |
| Authentifizierung | Keine | User- oder App-Token, oft review-pflichtig |
| Kosten | Kostenlos | Kostenlos für Basis-Reads, ratenlimitiert, Review für erweiterte Berechtigungen |
| Liefert einfügbaren Code | Ja – das fb-*-div plus sdk.js-Loader |
Nein – JSON, das du selbst renderst |
| Sprachsteuerung | Ja – sdk.js-Locale-Segment |
Irrelevant – du renderst die Ansicht |
| Ratenlimits | Keine für SDK/Plugins dokumentiert | Dokumentierte Graph-Limits |
Der Generator ruft keinen Graph-Endpunkt auf. Er baut das Social-Plugin-Markup nach Regel, spiegelt was der Konfigurator ausgeben würde, und verlässt sich für das Rendering auf FB.XFBML.parse. Die Graph API ist nicht beteiligt – Post-Daten darüber zu holen würde ein Token erfordern und ließe das Rendering dennoch bei dir, während das SDK die offizielle Karte kostenlos rendert.
Der Generator im Vergleich zum URL-Parser
Toollect liefert zwei Facebook-Tools, die dieselben Links akzeptieren, und die Arbeitsteilung ist einen Blick wert:
| Frage | URL-Parser | Dieser Generator |
|---|---|---|
| Welche Links? | Alle Facebook-Hosts und -Arten – Posts, Videos, Reels, Fotos, Gruppen-Posts, Seiten plus fb.watch/fb.me-Kurzlinks und Tracking-Parameterlisten |
Öffentliche Posts, Videos und Seiten, die eingebettet werden können |
| Was gibt er aus? | Saubere kanonische URLs, Embed- und Share-URLs, eine Parameter-Strip-Liste | Sofort einfügbaren SDK-Einbettungscode |
| Bereinigt Tracking-Parameter? | Ja – listet jeden entfernten Key wie __tn__ und utm_*-Familien |
Unnötig – Ausgabe ist frisch generierter Code |
Löst fb.watch auf? |
Ja – behält die kurze kanonische und markiert sie als kind:"short" mit dediziertem Fehler |
Nein – bittet um die vollständige Post- oder Video-URL |
| Netzwerkanfragen? | Null – alles lokale Regex | Vorschau lädt sdk.js von connect.facebook.net und das gerenderte iframe von Facebook |
| Zeigt Post-Inhalt? | Nur Struktur – keine Post-Daten | Die Vorschau zeigt den echten gerenderten Post, das Video oder die Page |
Der Parser ist der Analyst; der Generator ist der Builder. Ein Publishing-Workflow nutzt beide der Reihe nach – parsen, um zu identifizieren und zu normalisieren, wohin ein unordentlicher Share-Link zeigt, dann generieren, um ihn auf die Seite zu bringen. Sie stimmen grammatisch überein, daher wird ein Link, den der Parser als einbettbaren Post oder Video akzeptiert, von diesem Generator eingebettet, und ein hier abgelehnter Link wird durch den Parser erklärt.
Was das Tool nicht kann
Die Grenzen, benannt damit das Tool nie übervertraut wird:
- Es bettet
fb.watch-Kurzlinks nicht direkt ein. Ein Kurzlink trägt kein Ziel, bis Facebook weiterleitet. Füge stattdessen die expandierte Post- oder Video-URL ein. - Es unterscheidet eine Page nicht zuverlässig von einem persönlichen Profil allein per URL. Beide teilen
facebook.com/{username}undprofile.php?id=.... Eine statische Allowlist würde echte Pages blockieren oder persönliche Profile durchlassen – beides kommt in freier Wildbahn vor – daher generiert das Tool den Code für jede Page-förmige URL und zeigt eine gelbe Vorschau-Warnung nur, wenn das SDK ein Null- oder winziges iframe rendert oder einen Render-Fehler meldet. - Es hebelt keine Privatheit oder Beschränkung aus. Private Posts, Gruppen-Posts, die der Betrachter nicht sehen kann, alters- oder länderbeschränkte Seiten und Autoren, die das Einbetten deaktiviert haben, produzieren korrekten Code, der nichts oder eine eingeschränkte Ansicht rendert, wo selbst Facebooks eigener Konfigurator nichts zeigen würde.
- Es holt oder verifiziert Post-Inhalt nicht vor dem Rendern. Validierung ist grammatisch – ob der Inhalt existiert und einbettbar ist, beantwortet erst das Parsen des divs durch das SDK.
- Es styled die Karte nicht. Farben, Schriften und Chrome innerhalb des gerenderten Plugins stammen von Facebook. Nur Präsenz und Größe – Show text, Cover, Facepile, Lazy und numerische Breite/Höhe – gehören dir.
- Es installiert den Code nicht. Was du kopierst, fügst du ein; das Tool kann nicht in dein CMS oder deinen Page Builder greifen.
Fehlerbehebung
| Problem | Ursache | Lösung |
|---|---|---|
| "Kein einbettbarer Facebook-Link gefunden" | Fremder Host oder reservierte Route wie sharer.php / hashtag |
Post-, Video- oder Page-URL auf facebook.com, fb.watch oder fb.me verwenden |
| "fb.watch-Kurzlinks können nicht direkt eingebettet werden" | Offizieller Kurzlink – Ziel nicht lokal auflösbar | Link öffnen und die vollständige Post- oder Video-URL kopieren |
| Gelb "Diese URL ist möglicherweise ein persönliches Profil" bei Page-artiger URL | Das SDK renderte ein leeres oder winziges iframe oder meldete einen Render-Fehler – dieselben URL-Formen bedienen Pages und Timelines | Bekannte Page wie facebook.com/facebook probieren – rendert diese, markiert die Warnung korrekt eine persönliche URL. Für eine echte Page, die dennoch warnt, ist die Page möglicherweise eingeschränkt oder unveröffentlicht |
| "Das Facebook SDK konnte nicht geladen werden" | Adblocker, Tracking-Schutz oder Netzblockade auf connect.facebook.net |
connect.facebook.net für diese Seite und für deine Besucher whitelisten und erneut in privatem Fenster testen |
| "Facebook hat die Vorschau nicht innerhalb von 15 Sekunden gerendert" | Nicht-öffentlicher oder beschränkter Inhalt oder temporäre Facebook-Nichtverfügbarkeit | Original-Link auf facebook.com öffnen – verlangt er Login oder zeigt ein Restriktions-Interstitial, verhält sich das Einbetten auf deiner Seite gleich |
| Getippte Breite springt auf 500 / 1920 | Außerhalb liegender Wert beim Verlassen geclampt | Absichtlich – das Tool spiegelt Facebooks dokumentierte Bereiche; innerhalb der in Embed Options gezeigten Spanne tippen |
| Funktioniert in der Vorschau, leer auf meiner Seite | Seiten-CSP blockiert Facebook-Domains oder das CMS hat das div entfernt | https://connect.facebook.net zu script-src und https://www.facebook.com / https://*.facebook.com / https://*.fbcdn.net zu frame-src hinzufügen; in rohes HTML einfügen, nicht in visuellen Editor |
| Sprache geändert, aber Post-Text blieb fremd | Absichtlich – Locale lokalisiert Widget-Chrome, nie Post-Inhalt | Erwartet – der Post wird wie verfasst angezeigt |
[Violation] Permissions policy violation: unload in der Konsole |
Konsolenrauschen, weil Facebooks SDK einen unload-Handler registriert, den die Page-Permissions-Policy blockiert |
Harmlos – weder Vorschau noch generierter Code sind betroffen |
Datenschutz und Datenverarbeitung
Dieses Tool ist ehrlich über seinen Traffic.
- Generierung selbst ist lokal. URL parsen, auf einen Tab mappen und das
fb-*-div zusammenbauen geschieht im Browser mit JavaScript-String-Operationen. Kein Toollect-Server sieht den eingefügten Link. - Die Vorschau lädt Facebooks Maschinerie. Das Rendern der Karte holt
sdk.jsvonconnect.facebook.netim gewählten Locale, ruftFB.initundFB.XFBML.parseauf und das gerenderte iframe kommt vonfacebook.comundfbcdn.net– genau der Traffic, den der kopierte Code im Browser deiner Leser erzeugen wird. - Sprachauswahl ist in den Code gebacken.
ja_JPzu wählen schreibt dieses Locale in die Loader-URL, die du einfügst; Browser deiner Besucher holen das SDK dieses Locales. Keine Präferenz wird von Toollect gespeichert. - Kein Konto, keine Speicherung, keine Analyse. Das Tool hält keinen Zustand zwischen Besuchen über den In-Memory-Vorschau-Host hinaus; das Schließen des Tabs beendet alles.
- Den Code zu veröffentlichen bedeutet, dass deine Besucher mit Facebook sprechen. Das ist die Natur des Einbettens von Social Content Dritter – wert, klar zu sagen. Wenn du einen strikt offline Facebook-Workflow brauchst, erledigt der Facebook URL Parser auf dieser Seite seine gesamte Aufgabe mit null Netzwerkanfragen.
Technische Daten
Details:
- Ausgabe: SDK-div
fb-post/fb-video/fb-pagemit dokumentiertendata-*-Attributen plusfb-rootundsdk.js#xfbml=1&version=v26.0vonhttps://connect.facebook.net/{locale}/sdk.js;Include the fb-root div and sdk.js loaderentfernt den Loader-Block, wenn aus - Eingabegrammatik: Hosts
facebook.commit jeder Subdomain,fb.watch,fb.me; Username2–50Zeichen[A-Za-z0-9.]; Tabs[a-z][a-z0-9_]*mit numerischen zweiten Segmenten abgelehnt; IDs5–20Ziffern oderpfbid[1,200]; Kurzcodes5–40alphanum; Reserveliste 43 Einträge;profile.php?id=und/usernamerouten beide zu Page mit verifikationspflichtigem Rendering - Kanonische Ausgabe-URLs:
https://www.facebook.com/{username}oderprofile.php?id=für Pages,.../posts/{id}/share/p/{id}//story.php?story_fbid=...für Posts,.../videos/{id}oderwatch/?v=für Videos,.../reels/{id}/reel/{id}für Reels,.../photo/?fbid=für Fotos,.../groups/{gid}/posts/{id}für Gruppen-Posts - Maße: Post
350–750Standard500, Video220–1920Standard500, PageBreite 180–500Standard340plusHöhe 70–2048Standard500;data-width/data-heightdirekt geschrieben, kein iframe-Sizing - Sprachen: jede der 60
fbeLangCodeswählbar;fbeLangDefaultfolgt der Toollect-Seitensprache –zh-hant→zh_TW,zh-hans→zh_CN,en→en_US,de→de_DE,es→es_ES,fr→fr_FR,it→it_IT,ja→ja_JP,nl→nl_NL,pt→pt_BR,sv→sv_SE; Locale in Loader-URL geschrieben und von Vorschau-SDK-Reload vialoadedLocale-Tracking beachtet - Vorschau-Lifecycle:
renderPreviewinjiziertfb-root+fb-*-div,loadSdkJs(locale, cb)verwaltet gecachtessdk.jsmit locale-sensitivem Reload (entfernt altes Skript undwindow.FBbeim Wechsel),FB.XFBML.parseauf dem Host aufgerufen,startWatcherpollt das iframe alle 500 ms bis zu 30 Versuchen (15 s) und bis zu 6 Versuchen mit persistentem0×0(~3 s) vor der Personal-Profil-Warnung,setPreviewLoadingüber vier Exit-Punkte vereinheitlicht,fbe-fallback-Link zeigt auflastCanonicalbei jeder Diagnose - Browser-Support: alle modernen Browser mit Clipboard-API und
async/defer-Skript-Support; SDK-Rendering erfordert Third-Party-Skript-Ausführung und Erreichbarkeit vonconnect.facebook.net
Funktionen
- Offiziellen Facebook-JavaScript-SDK-Code für Posts, Videos und Page Plugins mit einem Klick generieren
- Live-Vorschau direkt mit Facebooks eigenem sdk.js – mit Diagnose bei SDK-Fehler und Timeout
- Aus 60 Anzeigesprachen wählen – deine Auswahl wird in die sdk.js-Loader-URL für deine Besucher geschrieben
- Jede offizielle Plugin-Option feinjustieren – Breite, Page-Tabs, Cover, Header, Facepile und Lazy Loading
- Reine SDK-Ausgabe für jede Seite – optionaler fb-root und Loader je nach Bedarf enthalten oder weggelassen
- Kostenlos und browserbasiert – kein API-Key, kein Konto, kein Toollect-Server-Proxy