Estou migrando do phpBB para o Discourse e descobri que a implementação do OpenGraph do Discourse está faltando algumas tags importantes das quais o Facebook depende para a exibição correta das imagens.
O Problema
Ao compartilhar tópicos do Discourse no Facebook, as imagens não são exibidas na pré-visualização do link. No entanto, ao compartilhar postagens do phpBB do mesmo fórum, as imagens são exibidas corretamente.
Usando o Facebook’s Sharing Debugger, descobri que:
phpBB inclui:
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:image:width" content="1024">
<meta property="og:image:height" content="768">
<meta property="og:image:type" content="image/jpeg">
Discourse inclui:
<meta property="og:image" content="https://example.com/uploads/.../image.JPG" />
O depurador mostra a imagem corretamente e retorna HTTP 200, mas o Facebook não a exibirá na pré-visualização real do compartilhamento sem os metadados de dimensão e tipo.
Por Que Isso é Importante
De acordo com a especificação do Protocolo OpenGraph:
A tag
og:imagepossui várias propriedades estruturadas opcionais, incluindoog:image:width,og:image:heighteog:image:type
Embora tecnicamente sejam opcionais, o rastreador do Facebook parece exigi-los ou preferi-los fortemente para uma exibição confiável da imagem. Isso é documentado em várias fontes e afeta o compartilhamento em mídias sociais para todas as comunidades Discourse.
Solução Proposta
O Discourse deve adicionar automaticamente essas três meta tags adicionais sempre que og:image estiver presente:
og:image:width- largura real da imagem em pixelsog:image:height- altura real da imagem em pixelsog:image:type- tipo MIME (image/jpeg, image/png, etc.)
Como o Discourse já processa e otimiza imagens, ele tem acesso a essas informações e pode incluí-las facilmente na saída do OpenGraph.
Impacto
Isso melhoraria o compartilhamento em mídias sociais para todos os sites Discourse, tornando os links compartilhados mais visualmente atraentes e aumentando o engajamento quando o conteúdo do Discourse é compartilhado no Facebook, LinkedIn e outras plataformas que consomem dados OpenGraph.