Gerador de incorporação do Facebook
Introdução
O Gerador de incorporação do Facebook do Toollect transforma qualquer URL pública de post, vídeo ou página do Facebook no código oficial de incorporação do SDK JavaScript que o Facebook documenta – o div fb-post / fb-video / fb-page mais o carregador sdk.js – em um clique, com pré-visualização ao vivo renderizada pelo próprio SDK do Facebook antes de você copiar.
A fricção que ele elimina é familiar para quem já colou código do Facebook à mão. O configurador do Facebook esconde o plugin de página, espalha as opções de post e vídeo em páginas separadas e alterna entre as formas iframe e SDK sem explicar os compromissos. Escrever o div à mão falha silenciosamente quando um atributo data- é digitado errado e o post renderiza como um simples link. Esta ferramenta apresenta post, vídeo e plugin de página lado a lado, expõe cada atributo documentado do plugin, grava sua escolha de idioma diretamente na URL do carregador e mostra a renderização real no mesmo navegador que vai atender seus visitantes.
Cada caminho de código é apenas SDK por design. O SDK é o formato que o Facebook mantém para os três tipos de plugin, o único que oferece idiomas de exibição e o único que consegue manter as abas e o dimensionamento do plugin de página consistentes. O gerador inclui fb-root e o carregador quando você precisa e os omite quando seu site já carrega o SDK, mantém a pré-visualização honesta sobre bloqueadores de anúncios e conteúdo privado e nunca envia seu link por um servidor do Toollect.
Casos de uso
Incorporar conteúdo do Facebook aparece em mais lugares que um post de blog, e as três abas dividem o trabalho naturalmente.
Blogs e conteúdo editorial
Um post de comentário citando um post público, um artigo cultural reutilizando um vídeo viral, uma resenha incorporando a linha do tempo de uma marca como prova social – os casos clássicos. O modo Post com a largura padrão de 500 pixels cobre a maioria das colunas – o modo Vídeo mantém o player em primeiro plano – o plugin de página mostra uma linha do tempo ao vivo sem capturas de tela.
Redações e cobertura ao vivo
Repórteres puxam declarações oficiais e posts de testemunhas para a cobertura contínua. Velocidade importa e verificação também – o gerador normaliza links móveis de compartilhamento como m.facebook.com e URLs carregadas de rastreamento para uma referência canônica, e a pré-visualização confirma que o post ainda renderiza antes da matéria ir ao ar.
Sites de marketing e portfólios
Avaliações de clientes como linhas do tempo de página incorporadas, vídeos de lançamento como players na página, posts de anúncio como cards. A seleção de idioma renderiza o entorno no idioma do visitante e omitir o carregador do SDK mantém páginas que já carregam o SDK do Facebook livres de scripts duplicados.
Documentação e sites de comunidade
Notas de versão citando um post de lançamento, documentação referenciando um anúncio de grupo do Facebook, páginas de evento mostrando a aba Eventos de uma página. Exibir texto e carregamento adiado permitem que páginas pesadas fiquem discretas até que você role para perto delas.
Como funciona
A ferramenta funciona em cinco etapas –
- Analise e classifique a URL – a entrada é comparada com a gramática de links do Facebook – IDs numéricos com
5–20dígitos ou IDspfbid, nomes de usuário com2–50caracteres, abas que correspondem a[a-z][a-z0-9_]*e os três hosts oficiaisfacebook.comcom qualquer subdomínio,fb.watchefb.me. Chaves de consulta de rastreamento são lidas e depois ignoradas para roteamento – a URL canônica reconstruída nunca as carrega. Rotas sem ID comofacebook.com/watchsemvoufb.watchsem código curto são rejeitadas. - Escolha o tipo de plugin –
post/photo/group-postmapeiam para Post,video/reelpara Vídeo,pagepara plugin de página. A barra de abas segue o link – colar uma URL watch muda automaticamente para Vídeo, colar uma URL de página para plugin de página – e trocar de aba manualmente limpa a saída obsoleta em vez de voltar. - Recolha suas opções – idioma no dropdown da aba, largura e altura nos campos numéricos, caixas de página para abas e entorno, interruptores de vídeo para tela cheia, reprodução automática e legendas. Cada mudança é ajustada para a faixa válida, reescrita no campo e regenerada imediatamente.
- Construa a marcação oficial – suas opções viram atributos
data-*no divfb-*e, para o plugin de página, a URL do carregador leva seu idioma comohttps://connect.facebook.net/{locale}/sdk.js#xfbml=1&version=v26.0. Nenhuma URL de iframe é construída – o SDK consome os atributos do div no momento da análise. - Renderize a pré-visualização – o gerador injeta o div mais um
fb-rootno host de pré-visualização, carrega ou recarregasdk.jspara o locale escolhido, chamaFB.XFBML.parsee observa o iframe resultante. Três resultados são relatados honestamente – sucesso, bloqueador de anúncios ou renderização que não consegue concluir.
Mudar qualquer opção reconstrói toda a cadeia – novos atributos, nova caixa de código, pré-visualização reanalisada – então o código que você copia sempre corresponde ao que você está vendo.
Formatos de URL compatíveis
O gerador aceita toda forma de URL que identifique um post, vídeo ou página públicos nos três hosts oficiais do Facebook e rejeita todo o resto com mensagem específica. Esquema e www. são opcionais – subdomínios móveis são normalizados.
Formatos aceitos
| Formato | Exemplo | Aba | Resultado |
|---|---|---|---|
| Post canônico | facebook.com/username/posts/1234567890123456 |
Post | fb-post para aquele post |
| Post pfbid | facebook.com/nike/posts/pfbid0ABCDEF12345 |
Post | fb-post para aquele post |
| Post de compartilhamento | facebook.com/share/p/Ab12CdEfGh/ |
Post | fb-post para aquele post |
| Story / permalink | facebook.com/story.php?story_fbid=123&id=456 / permalink.php?story_fbid=... |
Post | fb-post para aquele post |
| Foto | facebook.com/username/photos/1234567890123456 / photo.php?fbid=... / photo/?fbid=... |
Post | fb-post para aquela foto |
| Post de grupo | facebook.com/groups/999888777666/posts/111222333444555 |
Post | fb-post para aquele post de grupo |
| Vídeo canônico | facebook.com/username/videos/1234567890123456 |
Vídeo | fb-video para aquele vídeo |
| Link Watch | facebook.com/watch/?v=10153231379946729 |
Vídeo | fb-video para aquele vídeo |
| Reel | facebook.com/username/reels/Ab12CdEfGhIj / facebook.com/reel/Ab12Cd... |
Vídeo | fb-video para aquele reel |
| Página por nome de usuário | facebook.com/facebook |
Plugin de página | fb-page para aquela página |
| Página por ID | facebook.com/profile.php?id=100001234567890 |
Plugin de página | fb-page para aquela página |
| Visualização de aba da página | facebook.com/facebook/videos |
Plugin de página | fb-page para aquela página – sufixo de aba ignorado |
| Domínio curto | fb.watch/AbC12dEfXy |
— | Rejeitado – links curtos carregam kind:"short" e precisam da URL completa |
| Domínio de redirecionamento | fb.me/nike |
Plugin de página | fb-page para aquela página |
A barra final, o fragmento hash e a string de consulta após o ID são tolerados e descartados – sufixos de visualização como um segmento numérico de aba após um nome de usuário são tratados como visualização de aba de página, não como recurso separado.
Formatos rejeitados
| Forma de URL | Por que é rejeitada |
|---|---|
fb.watch/AbC12dEfXy |
Link curto oficial – o destino não pode ser resolvido localmente e o Facebook não documenta forma de incorporação para códigos curtos |
facebook.com/sharer/sharer.php?u=... / l.php / dialog / tr etc. |
Rotas reservadas de ferramenta – login, compartilhamento, rastreamento – não é conteúdo incorporável |
facebook.com/hashtag/something / search/top/?q=... |
Rotas de descoberta – nenhum post ou página individual |
example.com/facebook/nike ou qualquer host que não seja do Facebook |
Não é um domínio do Facebook |
| Texto que não é URL | Sem host para corresponder |
O caso fb.watch merece ênfase porque o botão de compartilhamento do app ainda produz essa forma. O gerador a recusa deliberadamente com a mensagem dedicada de link curto e pede que você abra o link e copie a URL completa do post ou vídeo. Colar a URL expandida funciona imediatamente.
Anatomia do código de incorporação
A saída é o código que o Facebook documenta, com suas opções aplicadas. Uma incorporação de post nos padrões fica assim –
<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>
Percorrendo as partes –
- A classe do div do plugin –
fb-post,fb-videooufb-pagediz ao SDK qual plugin instanciar. Uma classe por incorporação. data-href– a URL canônica da seção anterior, com e-comerciais escapados. É o único atributo obrigatório para os três plugins.data-width(Post e Vídeo) – a largura desejada em pixels. Post aceita350–750com padrão500nesta ferramenta, Vídeo220–1920com padrão500. O SDK do Facebook dimensiona o card para essa largura quando possível.data-show-text– presente quando Exibir texto do post está marcado. O Facebook documenta isso para posts e vídeos que contêm foto – sem ele o texto pode ficar oculto.data-lazy– presente quando Carregamento adiado está marcado. Adia a renderização até que a incorporação seja rolada para perto.data-allowfullscreen/data-autoplay/data-show-captions(apenas Vídeo) –allowfullscreenhabilita o botão de tela cheia,autoplayinicia reprodução em mudo ao carregar a página no desktop,show-captionsmostra legendas por padrão quando disponíveis no desktop. Os três ficam ausentes quando desativados.data-tabs/data-height/data-small-header/data-adapt-container-width/data-hide-cover/data-hide-cta/data-show-facepile(apenas plugin de página) –tabslista as abas visíveis comotimeline,events,messagescom padrãotimeline,heightcom padrão500, os booleanos mapeiam diretamente para os interruptores de entorno do plugin.- O carregador –
fb-rootmaissdk.js#xfbml=1&version=v26.0a partir deconnect.facebook.net/{locale}/.en_USé um exemplo – sua escolha de idioma grava o segmento de locale. A caixaInclude the fb-root div and sdk.js loaderremove todo esse bloco quando seu site já carrega o SDK.
Um plugin de página com configurações não padrão mostra o conjunto mais completo de atributos –
<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>
Opções de incorporação
Cada controle corresponde a um atributo. Padrões entre parênteses.
Idioma (padrão seu idioma do site Toollect – zh-hant vira zh_TW, zh-hans zh_CN, en en_US e o mesmo para de, es, fr, it, ja, nl, pt, sv) – mostra 60 locales de en_US até af_ZA com nomes localizados por idioma da página Toollect. Cada seleção explícita, inglês incluído, é gravada na URL do carregador. O SDK localiza o entorno da incorporação – carimbos de data, rótulos do botão Curtir – nunca o texto do post em si.
Largura (Post 500, Vídeo 500, Página 340) – digitada como número exato, ajustada para a faixa válida assim que você sai do campo. Post 350–750, Vídeo 220–1920, Página 180–500. Valores fora da faixa saltam para o limite mais próximo – 5000 em Vídeo vira 1920.
Altura (Página 500) – apenas plugin de página, 70–2048. Posts e vídeos não levam atributo de altura – o SDK dimensiona seus cards a partir da largura e do conteúdo.
Exibir texto do post com fotos e vídeos (desativado) – grava data-show-text="true" para Post e para Vídeo acrescenta (apenas desktop) no rótulo para corresponder à nota do Facebook de que o interruptor de texto afeta apenas a renderização no desktop.
Carregamento adiado até rolar para perto (desativado, todas as abas) – grava data-lazy="true".
Permitir reprodução em tela cheia (desativado, Vídeo) – grava data-allowfullscreen="true".
Reproduzir automaticamente ao carregar a página (sem som, apenas desktop) (desativado, Vídeo) – grava data-autoplay="true". O Facebook documenta isso como reprodução automática em mudo apenas no desktop.
Mostrar legendas por padrão quando disponíveis (apenas desktop) (desativado, Vídeo) – grava data-show-captions="true", apenas desktop.
Abas a exibir (Linha do tempo, plugin de página) – três caixas timeline / events / messages unidas como data-tabs="timeline,events,messages". Abas desmarcadas simplesmente não aparecem na lista.
Usar cabeçalho pequeno / Adaptar à largura do contêiner / Ocultar foto de capa / Ocultar call-to-action personalizado / Mostrar fotos de perfil de amigos (plugin de página) – cada um grava seu booleano data-*. Adaptar está ativado por padrão – facepile está ativado por padrão.
Incluir o div fb-root e o carregador sdk.js (ativado) – controla se o bloco do carregador é acrescentado. Sites que já carregam sdk.js globalmente devem desmarcá-lo.
Idioma e internacionalização
As perguntas frequentes de posts incorporados do Facebook e o guia de internacionalização do SDK JavaScript dizem a mesma coisa – o idioma de exibição dos plugins sociais vem do segmento de locale da URL sdk.js. Esta ferramenta torna isso visível.
Sua seleção de idioma flui para dois lugares –
- O código gerado –
https://connect.facebook.net/{locale}/sdk.js#xfbml=1&version=v26.0comlocalecomoen_US,zh_TW,fr_FRouja_JP. - A pré-visualização ao vivo – mudar o dropdown reconstrói o host de pré-visualização, remove qualquer script SDK carregado antes que carregue um locale diferente, apaga
window.FBe carrega o novo locale do zero antes de chamarFB.XFBML.parse.
O padrão segue automaticamente seu idioma do site Toollect – visitar toollect.com/zh-hant/tools/facebook-embed-generator/ pré-seleciona zh_TW, zh-hans pré-seleciona zh_CN, ja pré-seleciona ja_JP e os idiomas europeus mapeiam para sua forma territorial (de→de_DE, fr→fr_FR e assim por diante), voltando para en_US caso contrário. Não há opção Automático – o Facebook exige um locale explícito, então a ferramenta sempre grava um.
O que muda e o que não muda –
| Aspecto | Segue o locale | Permanece como foi escrito |
|---|---|---|
| Formato de carimbo de data | Sim | — |
| Rótulos dos botões Curtir / Compartilhar | Sim | — |
| Texto do post, título do vídeo, nome da página | — | Sim |
| Comentários no post | — | Sim |
Idiomas de exibição compatíveis
O Facebook documenta cerca de cem locales para o SDK. O dropdown oferece os sessenta mais usados, com nomes localizados por idioma da página Toollect. O conjunto completo documentado inclui –
af_ZA Africâner · ar_AR Árabe · az_AZ Azerbaijano · bg_BG Búlgaro · bn_IN Bengali · bs_BA Bósnio · ca_ES Catalão · cs_CZ Tcheco · da_DK Dinamarquês · de_DE Alemão · el_GR Grego · en_GB Inglês (UK) · en_US Inglês (US) · es_ES Espanhol (Espanha) · es_LA Espanhol · et_EE Estoniano · eu_ES Basco · fa_IR Persa · fi_FI Finlandês · fr_FR Francês · gl_ES Galego · gu_IN Gujarati · he_IL Hebraico · hi_IN Hindi · hr_HR Croata · hu_HU Húngaro · hy_AM Armênio · id_ID Indonésio · is_IS Islandês · it_IT Italiano · ja_JP Japonês · jv_ID Javanês · ka_GE Georgiano · km_KH Khmer · kn_IN Canarês · ko_KR Coreano · lo_LA Lao · lt_LT Lituano · lv_LV Letão · mk_MK Macedônio · ml_IN Malaiala · mr_IN Marati · ms_MY Malaio · my_MM Birmanês · nb_NO Norueguês · ne_NP Nepalês · nl_NL Holandês · pa_IN Punjabi · pl_PL Polonês · pt_BR Português (Brasil) · pt_PT Português (Portugal) · ro_RO Romeno · ru_RU Russo · si_LK Cingalês · sk_SK Eslovaco · sl_SI Esloveno · sq_AL Albanês · sr_RS Sérvio · su_ID Sundanês · sv_SE Sueco · sw_KE Suaíli · ta_IN Tâmil · te_IN Telugu · th_TH Tailandês · tl_PH Filipino · tr_TR Turco · uk_UA Ucraniano · ur_PK Urdu · vi_VN Vietnamita · zh_CN Chinês (simplificado) · zh_HK Chinês (Hong Kong) · zh_TW Chinês (tradicional)
Qualquer locale além deste dropdown é válido na URL do carregador pelo mesmo padrão – https://connect.facebook.net/{locale}/sdk.js – mas os sessenta acima cobrem cada idioma que o próprio Toollect oferece, então colar o código raramente precisa de edição.
Uso
- Cole uma URL do Facebook na entrada – qualquer formato aceito das tabelas acima, incluindo
m.facebook.come links curtosfb.meque resolvem para página. Esquema ewww.são opcionais. - Pressione Gerar ou Enter. O código aparece na caixa de saída e a pré-visualização abre automaticamente, mostrando a renderização real do SDK. A barra de URL também direciona a aba – um link watch muda para Vídeo, um link de página para plugin de página.
- Escolha a aba se necessário – Post para posts, fotos e posts de grupo – Vídeo para vídeos e reels – plugin de página para páginas. Trocar regenera com o conjunto de opções daquela aba, abas incompatíveis limpam a saída obsoleta.
- Defina o idioma – o padrão já corresponde ao seu idioma do site, mas você pode escolher qualquer um dos sessenta locales. A URL do carregador gerada e a pré-visualização mudam imediatamente.
- Ajuste as opções restantes – largura, altura para página, interruptores de cabeçalho e capa, carregamento adiado. Cada mudança regenera – a caixa de código e a pré-visualização nunca divergem.
- Verifique o diagnóstico da pré-visualização – se nenhum card aparecer, o aviso acima da saída diz se o SDK foi bloqueado, o conteúdo não consegue renderizar ou a URL aponta para uma linha do tempo pessoal em vez de uma página.
- Copie o código e cole na sua página onde a incorporação deve aparecer. Se seu site já carrega
sdk.js, desmarque a inclusão do carregador para evitar duplicata.
Entrada que não corresponde a nenhum formato compatível limpa a saída e se explica na área vermelha de erro – seja a mensagem de link inválido ou a mensagem de link curto. Limpar redefine entrada, código e pré-visualização em um passo.
Tutorial
Siga um link real pelas três abas.
Passo 1 – Cole um link de post como o app compartilha. Copie uma URL de post com parâmetros de rastreamento –
https://m.facebook.com/facebook/posts/pfbid0AbCdEfGhIjKlMnOpQrStUvWxYz1234567890?__tn__=K-R
Pressione Gerar. O analisador lê além do subdomínio m. e do rastreamento __tn__ até facebook, post pfbid0AbCdEfGhIjKlMnOpQrStUvWxYz1234567890, a aba permanece em Post e o código mostra data-width="500" com o carregador en_US porque este passo a passo está no site em inglês. A pré-visualização abre e o card renderiza em 500 pixels.
Passo 2 – Mude o idioma. Troque o idioma do Post para chinês tradicional zh_TW. O carregador vira https://connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v26.0 e a pré-visualização recarrega o SDK – o carimbo de data perto do post muda para sua forma chinesa enquanto o texto do post permanece exatamente como foi escrito.
Passo 3 – Ajuste a largura. Digite 600 em Largura e saia do campo. O div ganha data-width="600" e o card encolhe. Tente digitar 9999 e sair – o campo salta para 750, o máximo de Post.
Passo 4 – Mude para Vídeo. Na entrada substitua a URL do post por um vídeo –
https://www.facebook.com/facebook/videos/10153231379946729/
Pressione Gerar. A ferramenta muda para Vídeo, o código vira <div class="fb-video" data-href="https://www.facebook.com/facebook/videos/10153231379946729" data-width="500"> e o dropdown de idioma mostra o mesmo padrão en_US. Marque Reprodução automática e Mostrar legendas – cada um grava seu data-* com a nota apenas desktop mantida no rótulo.
Passo 5 – Plugin de página. Cole https://www.facebook.com/facebook e gere. A aba plugin de página abre com data-tabs="timeline" e o conjunto completo de entorno. Marque Eventos e Mensagens – o atributo vira data-tabs="timeline,events,messages". Mude Largura para 500 e Altura para 700 – ambos os atributos são atualizados. A pré-visualização mostra a linha do tempo, a capa e o facepile da página exatamente como o código vai ficar no seu site.
Passo 6 – Copie e publique. Pressione Copiar e cole em uma página HTML simples que já carrega sdk.js – desmarque o carregador antes de copiar. Abra a página – o post, o vídeo e a página renderizam cada um nas larguras que você definiu, nos idiomas que escolheu.
Pré-visualização e diagnóstico
A pré-visualização executa o sdk.js genuíno do Facebook contra seu div exato de buildSdkCode, então falha exatamente onde sua página vai falhar. O host mostra um spinner enquanto sdk.js baixa e FB.XFBML.parse roda, depois um de quatro resultados aparece –
| Estado | O que significa | O que fazer |
|---|---|---|
| Card / vídeo / linha do tempo renderiza | A incorporação é válida e pública | Copie e cole – a mesma renderização vai aparecer no seu site |
| "O SDK do Facebook falhou ao carregar — geralmente um bloqueador de anúncios" | O navegador não conseguiu baixar connect.facebook.net/{locale}/sdk.js de forma alguma |
Coloque connect.facebook.net na lista de permissões do bloqueador ou tente uma janela privada limpa. A incorporação publicada vai falhar do mesmo jeito para visitantes com aquele bloqueador |
| "O Facebook não renderizou a pré-visualização em 15 segundos" | O SDK carregou mas não produziu nenhum iframe | O conteúdo pode ser não público, com restrição de idade ou país, removido ou o autor desativou a incorporação. Abra o link original em facebook.com para verificar – se ele estiver visível lá mas não aqui, a incorporação está desativada |
| "Esta URL pode ser um perfil pessoal — o plugin de página só funciona de forma confiável com páginas do Facebook" | O SDK renderizou um iframe que ficou em 0 ou abaixo de 70 pixels por várias verificações, ou FB.Event relatou erro de renderização |
O plugin de página foi feito para páginas – linhas do tempo pessoais compartilham as mesmas formas de URL como /username e profile.php?id=..., então uma verificação estática classificaria páginas reais errado. Tente uma página conhecida como facebook.com/facebook – se ela renderizar, o aviso sinaliza corretamente uma URL pessoal |
Ambos os avisos temporizados disparam apenas após esperas generosas – vinte segundos para o download do SDK, quinze a mais para a renderização – então conexões lentas não geram falsos alarmes. Um post incorporável renderiza bem dentro dessas janelas e um plugin de página de perfil pessoal mostra o aviso amarelo em cerca de três segundos depois que o iframe permanece em tamanho zero.
Um detalhe que vale saber – o gerador rastreia loadedLocale. Mudar o idioma após uma renderização bem-sucedida remove a tag de script sdk.js anterior, apaga window.FB e carrega o novo locale do zero antes da análise. Cards renderizados antes do locale anterior são apagados do host de pré-visualização antes da nova análise, então a pré-visualização sempre corresponde à URL do carregador que você vai copiar.
Dicas profissionais
- Combine com o Analisador de URL do Facebook. O analisador examina e limpa um link – tipo, nome de usuário, ID, chaves de rastreamento removidas – enquanto este gerador transforma o link limpo em código. Arquive com o analisador, publique com o gerador.
- Um carregador, muitas incorporações. Páginas com várias incorporações do Facebook devem carregar
sdk.jsuma vez – gere a primeira incorporação com o carregador marcado, o resto desmarcado, ou carregue o SDK você mesmo no template do site e omita em todo lugar. O divfb-roottambém é necessário apenas uma vez por página. - Projete para a coluna, depois defina a largura. Cards do Facebook limitam visualmente em torno das larguras da tabela de opções – a pré-visualização mostra o resultado real no tamanho do seu contêiner antes de você confirmar. Digite um valor exato em pixels –
567é válido – e o ajuste vai corrigir apenas se sair da faixa documentada. - Use o modo Vídeo para posts com foco em clipe. Um vídeo incorporado via plugin de post renderiza como card estático – via
fb-videorenderiza como player com os controles de reprodução automática e legendas que o plugin documenta. - Fixe o idioma explicitamente. Deixar o entorno flutuar com o
<html lang>da página anfitriã faz a saída depender de onde é colada. Cada seleção explícita,en_USincluído, grava o locale no código e reproduz os mesmos rótulos independentemente do host. - Carregamento adiado em páginas pesadas. Um artigo com três linhas do tempo de plugin de página se beneficia diretamente de
data-lazy– o SDK adia a análise até que a incorporação seja rolada para perto. - Mantenha as abas do plugin de página mínimas. Cada aba extra adiciona altura e custo de rede – apenas
timelineé a renderização inicial mais rápida – adicioneeventsemessagesapenas quando a página realmente usar.
Alternativas
De que outras formas você pode levar conteúdo do Facebook para uma página?
| Método | Marcação oficial | Cobertura de opções | Pré-visualização ao vivo | Dependências |
|---|---|---|---|---|
| Esta ferramenta | Sim – div SDK com data-* documentado |
Conjunto completo incluindo 60 idiomas, abas de página e controles de player | Sim, com diagnóstico de três estados | Nenhuma – navegador para o Facebook direto |
Configurador de plugin de página do Facebook (developers.facebook.com) |
Sim – mesmo div SDK | Apenas página, sem união de post/vídeo, ajuda limitada de largura | Apenas no configurador | Conta do Facebook |
Div fb-* escrito à mão + sdk.js |
Com forma correta se cuidadoso | O que você digitar – fácil errar | Não | sdk.js |
URL iframe isolada plugins/post.php |
Forma iframe legada | Subconjunto – sem idioma, sem adiado, sem abas de página como data- |
Não | Nenhuma |
API Graph do Facebook (/{id}?fields=... + renderizador próprio) |
Não – apenas JSON | Total, construído por você | Construa você mesmo | App, token, revisão |
| Serviços de incorporação de terceiros | Sua marcação envolvente | Varia | Às vezes | Seu script e rastreamento |
O configurador próprio do Facebook é a alternativa mais próxima e a fonte do mesmo vocabulário data-* – mas separa post, vídeo e página em páginas diferentes, não oferece aviso de pessoal vs página e nunca produz uma união post/vídeo/página com a lista completa de idiomas da ferramenta. A via de API Graph compra controle total ao preço de um app, um token e revisão contínua e ainda deixa a renderização com você. Serviços de terceiros interpõem seus próprios scripts. O gerador ocupa o meio prático – marcação oficial, opções completas, confirmação visual imediata.
Versus APIs oficiais
Duas superfícies oficiais tocam a incorporação do Facebook e o gerador é construído diretamente sobre a mais amigável e sem chave.
| Capacidade | Social Plugins + JavaScript SDK | Graph API |
|---|---|---|
| Propósito | URL → incorporação renderizada, lado cliente | Dados completos de plataforma e publicação |
| Autenticação | Nenhuma | Token de usuário ou de app, muitas vezes com revisão |
| Custo | Grátis | Grátis para leituras básicas, com limite de taxa, revisão para permissões estendidas |
| Retorna código pronto para colar | Sim – o div fb-* mais o carregador sdk.js |
Não – JSON que você mesmo renderiza |
| Controle de idioma | Sim – segmento de locale sdk.js |
Irrelevante – você renderiza a visualização |
| Limites de taxa | Nenhum documentado para SDK/plugins | Limites do Graph documentados |
O gerador não chama nenhum endpoint do Graph. Ele constrói a marcação de Social Plugin por regra, espelhando o que o configurador emitiria, e se apoia no próprio FB.XFBML.parse do SDK para renderização. A API Graph não intervém – buscar dados de post por ela exigiria um token e ainda deixaria a renderização com você, enquanto o SDK já renderiza o card oficial de graça.
Gerador vs. analisador de URL
O Toollect entrega duas ferramentas de Facebook que aceitam os mesmos links e a divisão do trabalho merece um olhar –
| Pergunta | Analisador de URL | Este gerador |
|---|---|---|
| Que tipos de links? | Todos os hosts e tipos do Facebook – posts, vídeos, reels, fotos, posts de grupo, páginas, mais links curtos fb.watch/fb.me e listas de parâmetros de rastreamento |
Posts, vídeos e páginas públicos que podem ser incorporados |
| O que entrega? | URLs canônicas limpas, URLs de incorporação e compartilhamento, lista de parâmetros removidos | Código de incorporação SDK pronto para colar |
| Limpa parâmetros de rastreamento? | Sim – lista cada chave removida como __tn__ e famílias utm_* |
Desnecessário – a saída é código recém-gerado |
Resolve fb.watch? |
Sim – mantém a canônica curta e sinaliza como kind:"short" com erro dedicado |
Não – pede a URL completa do post ou vídeo |
| Solicitações de rede? | Zero – tudo é regex local | A pré-visualização carrega sdk.js de connect.facebook.net e o iframe renderizado do Facebook |
| Mostra conteúdo do post? | Apenas estrutura – sem dados de post | A pré-visualização mostra o post, vídeo ou página reais renderizados |
O analisador é o analista – o gerador é o construtor. Um fluxo de publicação usa legitimamente ambos em ordem – analisar para identificar e normalizar para onde um link bagunçado de compartilhamento aponta, depois gerar para colocar na página. Eles concordam na gramática por construção, então um link que o analisador aceita como post ou vídeo incorporável é um link que este gerador incorpora, e um link que este gerador recusa é explicado pelo analisador.
O que não faz
Os limites, nomeados para que a ferramenta nunca seja superestimada –
- Não incorpora links curtos
fb.watchdiretamente. Um link curto não carrega destino até que o Facebook redirecione. Cole a URL expandida do post ou vídeo. - Não distingue de forma confiável uma página de um perfil pessoal apenas pela URL. Ambos compartilham
facebook.com/{username}eprofile.php?id=.... Uma lista estática bloquearia páginas reais ou deixaria passar perfis pessoais – ambos acontecem – então a ferramenta gera o código para qualquer URL com forma de página e mostra um aviso amarelo na pré-visualização apenas quando o SDK renderiza um iframe nulo ou minúsculo ou relata erro de renderização. - Não ignora privacidade ou restrição. Posts privados, posts de grupo que o visualizador não pode ver, páginas com restrição de idade ou país e autores que desativaram a incorporação produzem código correto que não renderiza nada ou uma visão limitada onde até o próprio configurador do Facebook não mostraria nada.
- Não busca ou verifica o conteúdo do post antes de renderizar. A validação é gramatical – se o conteúdo existe e é incorporável só o SDK responde ao analisar o div.
- Não estiliza o card. Cores, fontes e entorno dentro do plugin renderizado são do Facebook. Apenas presença e tamanho – exibir texto, capa, facepile, adiado e a largura/altura numéricas – são seus.
- Não instala o código. O que você copia é o que você cola – a ferramenta não alcança seu CMS ou construtor de páginas.
Solução de problemas
| Problema | Causa | Solução |
|---|---|---|
| "Nenhum link incorporável do Facebook encontrado" | Host que não é do Facebook ou rota reservada como sharer.php / hashtag |
Use uma URL de post, vídeo ou página em facebook.com, fb.watch ou fb.me |
| "Links curtos fb.watch não podem ser incorporados diretamente" | Link curto oficial – destino não resolvível localmente | Abra o link e copie a URL completa do post ou vídeo |
| Amarelo "Esta URL pode ser um perfil pessoal" com URL com aparência de página | O SDK renderizou um iframe vazio ou minúsculo ou relatou erro de renderização – as mesmas formas de URL servem tanto páginas quanto linhas do tempo | Tente uma página conhecida como facebook.com/facebook – se ela renderizar, o aviso sinaliza corretamente uma URL pessoal. Para uma página real que ainda avisa, a página pode estar restrita ou não publicada |
| "O SDK do Facebook falhou ao carregar" | Bloqueador de anúncios, proteção de rastreamento ou bloqueio de rede em connect.facebook.net |
Coloque connect.facebook.net na lista de permissões para esta página e para seus visitantes teste novamente em janela privada |
| "O Facebook não renderizou a pré-visualização em 15 segundos" | Conteúdo não público ou restrito, ou indisponibilidade temporária do Facebook | Abra o link original em facebook.com – se ele exigir login ou mostrar um intersticial de restrição, a incorporação vai se comportar igual no seu site |
| Minha largura digitada saltou para 500 / 1920 | Valor fora da faixa ajustado ao sair do campo | Intencional – a ferramenta reflete as faixas documentadas do Facebook – digite dentro da faixa mostrada em Opções de incorporação |
| Funciona na pré-visualização, vazio no meu site | CSP do site bloqueia domínios do Facebook ou o CMS removeu o div | Adicione https://connect.facebook.net a script-src e https://www.facebook.com / https://*.facebook.com / https://*.fbcdn.net a frame-src – cole em HTML puro, não em editor visual |
| Mudei o idioma mas o texto do post continuou estrangeiro | Por design – o locale localiza o entorno do widget, nunca o conteúdo | Esperado – o post é exibido como foi escrito |
[Violation] Permissions policy violation: unload no console |
Ruído de console porque o SDK do Facebook registra um handler unload que a política de permissões da página bloqueia |
Inofensivo – nem a pré-visualização nem o código gerado são afetados |
Privacidade e tratamento de dados
Esta ferramenta é honesta sobre seu tráfego.
- A geração em si é local. Analisar a URL, mapear para uma aba e montar o div
fb-*acontece no seu navegador com operações de string JavaScript. Nenhum servidor do Toollect vê o link que você cola. - A pré-visualização carrega a maquinaria do Facebook. Renderizar o card busca
sdk.jsdeconnect.facebook.netno locale que você escolheu, chamaFB.initeFB.XFBML.parsee o iframe renderizado vem defacebook.comefbcdn.net– precisamente o tráfego que o código que você copia vai produzir nos navegadores dos seus leitores. - A seleção de idioma fica gravada no código. Escolher
ja_JPgrava aquele locale na URL do carregador que você cola – os navegadores dos seus visitantes vão buscar o SDK daquele locale. Nenhuma preferência é armazenada pelo Toollect. - Sem conta, sem armazenamento, sem análise. A ferramenta não mantém estado entre visitas além do host de pré-visualização em memória – fechar a aba termina tudo.
- Publicar o código significa que seus visitantes falam com o Facebook. Essa é a natureza de incorporar conteúdo social de terceiros – vale dizer claramente. Se você precisa de um fluxo de trabalho do Facebook estritamente offline, o Analisador de URL do Facebook deste site faz todo seu trabalho com zero solicitações de rede.
Especificações técnicas
Detalhes –
- Saída – div SDK
fb-post/fb-video/fb-pagecom atributosdata-*documentados maisfb-rootesdk.js#xfbml=1&version=v26.0dehttps://connect.facebook.net/{locale}/sdk.js–Include the fb-root div and sdk.js loaderremove o bloco do carregador quando desativado - Gramática de entrada – hosts
facebook.comcom qualquer subdomínio,fb.watch,fb.me– nome de usuário2–50caracteres[A-Za-z0-9.]– abas[a-z][a-z0-9_]*com segundos segmentos numéricos rejeitados – IDs5–20dígitos oupfbid[1,200]– códigos curtos5–40alfanum – lista reservada 43 entradas –profile.php?id=e/usernameambos roteiam para página pendente de verificação em tempo de renderização - URLs canônicas de saída –
https://www.facebook.com/{username}ouprofile.php?id=para páginas,.../posts/{id}/share/p/{id}//story.php?story_fbid=...para posts,.../videos/{id}ouwatch/?v=para vídeos,.../reels/{id}/reel/{id}para reels,.../photo/?fbid=para fotos,.../groups/{gid}/posts/{id}para posts de grupo - Dimensões – Post
350–750padrão500, Vídeo220–1920padrão500, Páginalargura 180–500padrão340maisaltura 70–2048padrão500–data-width/data-heightgravados diretamente, sem dimensionamento de iframe - Idiomas – qualquer um dos 60
fbeLangCodesselecionável –fbeLangDefaultsegue o idioma da página Toollect –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 gravado na URL do carregador e respeitado pelo recarregamento do SDK da pré-visualização via rastreamentoloadedLocale - Ciclo de vida da pré-visualização –
renderPreviewinjetafb-root+ divfb-*,loadSdkJs(locale, cb)gerenciasdk.jsem cache com recarregamento sensível a locale (remove script antigo ewindow.FBao trocar),FB.XFBML.parseinvocado no host,startWatcherverifica o iframe a cada 500 ms até 30 tentativas (15 s) e até 6 tentativas de0×0persistente (~3 s) antes do aviso de perfil pessoal,setPreviewLoadingunificado em quatro pontos de saída, linkfbe-fallbackaponta paralastCanonicalem qualquer diagnóstico - Suporte a navegadores – todos os navegadores modernos com API de área de transferência e suporte a script
async/defer– a renderização do SDK exige execução de script de terceiros e alcance deconnect.facebook.net
Recursos
- Gere o código oficial do SDK JavaScript do Facebook para posts, vídeos e plugins de página em um clique
- Pré-visualização ao vivo renderizada pelo próprio sdk.js do Facebook antes de copiar – com diagnóstico de falha e timeout do SDK
- Escolha entre 60 idiomas de exibição – sua seleção é gravada na URL do carregador sdk.js para seus visitantes
- Ajuste cada opção oficial do plugin – largura, abas da página, capa, cabeçalho, facepile e carregamento adiado
- Saída apenas SDK que funciona em qualquer site – fb-root e carregador opcionais incluídos ou omitidos conforme você precisar
- Grátis e no navegador – sem chave API, sem conta, sem proxy de servidor do Toollect