O Facebook Open Graph não está limpando o cache

174

Estou tendo problemas com minhas metatags com o Open Graph. Parece que o Facebook está armazenando em cache valores antigos de minhas meta tags. Valores antigos para Atributos og:titlee og:urlainda são usados, mesmo que eu já os tenha alterado.

Corri o Lint em uma página do meu site e isso apareceu:

Captura de tela do Facebook Open Graph lint

Observe que existem dois valores para og:titlee og:url, e o último prevaleceu. No entanto, as duas últimas entradas são as entradas VELHAS que eu usei para este site. Atualmente, estou usando essas metatags (você pode verificar se visualiza a fonte do HTML):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

Por que o cache do Facebook og:titlee og:url? Alguém está enfrentando o mesmo problema?

Ardee Aram
fonte
Suponho que isso seja como uma história? Estou vendo o FB recebendo as últimas titlee urlpara você (na tabela de informações), então por que se preocupar?
ifaour
O problema é, o facebook como contagem ainda é para o og VELHO: url ( pinq.dk ), que é de cerca de 200 +, em oposição a contagem para pinq.dk/tilbud/landsdaekkende/lissy
Ardee Aram
e não acho que isso seja história. Mais do og: url (supostamente) definido duas vezes, o último sendo o que prevaleceu. De alguma forma, os valores antigos que já foram removidos do código ainda afetam os meta-valores.
Ardee Aram
3
Bem, leia isso . Especialmente a seção Editando Meta Tags . Não tenho certeza se está relacionado, mas pode ajudar. Irá verificar isso mais tarde, desculpe companheiro!
ifaour
2
Provavelmente é isso. "Você pode atualizar os atributos da sua página atualizando as tags <meta> da sua página. Observe que o og: title e og: type são editáveis ​​apenas inicialmente - depois que sua página recebe 50 curtidas, o título fica fixo e depois que sua página recebe 10.000 curtidas o tipo torna-se fixo. Essas propriedades são corrigidas para evitar usuários surpreendentes que já gostaram da página. Alterar as tags de título ou tipo depois que esses limites são alcançados não faz nada, sua página mantém o título e o tipo originais. ". Obrigado ifaour!
Ardee Aram

Respostas:

304
  1. Vá para http://developers.facebook.com/tools/debug
  2. Digite o URL seguido por fbrefresh=CAN_BE_ANYTHING

Exemplos:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. OU visite: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

Eu estava com o mesmo problema ontem à noite e obtive essa solução em algum site.

O Facebook salva sua miniatura de cache. Ele não será atualizado mesmo que você exclua o thumnail / imagem do seu servidor. Mas o Facebook permite que você atualize usandofbrefresh

Eu espero que isso ajude.

PC
fonte
30
pode não ser necessário param fbrefresh, pois a ferramenta de depuração atualiza o objeto sem ele.
Alexandru.topliceanu
7
Ele não limpa o cache, a menos que você use esse parâmetro.
Umur Kontacı
26
Falso, acrescentando que o parâmetro não faz diferença para o funcionamento da ferramenta de depuração - não há nenhuma referência a esse parâmetro qualquer no código de ferramenta de depuração ou raspador
Igy
7
Não é necessário usar o parâmetro fbrefresh, mas você precisa estar logado como administrador do aplicativo FB que possui esse domínio, caso contrário, o cache não será atualizado.
Felipe Brahm
3
Posso verificar se a adição do parâmetro fbrefresh funcionou para mim. Se eu compartilhava o URL, ele usava dados antigos, mesmo que o depurador estivesse mostrando os dados corretos. Mas uma vez que usei o depurador com o parâmetro fbrefresh, mesmo os compartilhamentos normais usaram os dados corretos.
sorvete
82

A pergunta mais votada está bastante desatualizada:

Estas são as únicas 2 opções que devem ser usadas a partir de novembro de 2014 :

Para não desenvolvedores

  1. Use o FB Debugger: https://developers.facebook.com/tools/debug/og/object
  2. Cole o URL que deseja recuperar. Use o mesmo URL incluído na sua tag og: url
  3. Clique no botão Buscar informações de raspar novamente

Para desenvolvedores

  1. Faça uma chamada GET programaticamente para este URL: https://graph.facebook.com/?id=[YOUR_URL_HEREingerie&scrape=true (consulte: https://developers.facebook.com/docs/games_payments/takingpayments#scraping )
  2. Verifique se a tag og: url incluída no cabeçalho dessa página corresponde à que você está passando.
  3. você pode até analisar a resposta json para obter o número de compartilhamentos desse URL.

Informações adicionais sobre a atualização de imagens

  • Se o URL og: image permanecer o mesmo, mas a imagem realmente tiver sido alterada, ela não será atualizada nem remontada pelos raspadores do Facebook, mesmo fazendo o acima. (mesmo passando um? last_update = [TIMESTAMP] no final do URL da imagem não funcionou para mim).
  • A única solução eficaz para mim foi atribuir um novo nome à imagem.

Nota sobre atualizações de imagem ou vídeo em postagens postadas anteriormente:

  • Quando você chama o depurador para descartar alterações nas tags og: da sua página, todos os compartilhamentos anteriores no Facebook desse URL ainda mostrarão a imagem / vídeo antigo. Não há como atualizar todas as postagens anteriores e é dessa forma por motivos de segurança. Caso contrário, alguém seria capaz de fingir que um usuário compartilhou algo que ele / ela realmente não compartilhou.
Oriol Esteban
fonte
Parece não retornar o número de compartilhamentos da minha página. Eu li neste post: " stackoverflow.com/questions/3581488/… " que você precisa ter um botão de curtir / compartilhar no Facebook na página para que a saída desse endpoint contenha qualquer informação.
WillyBurb 17/02
verifique se as tags estão no HEAD e não no CORPO da sua página - o depurador irá avisá-lo disso e elas serão ignoradas (sim, eu sei que você mencionou isso, eu só queria enfatizar o ponto)
Simon_Weaver
@Oriol Esteban, você encontrou outras maneiras de atualizar imagens?
Petr
3
@Oriol Quando eu tentei recentemente isso eu tive que postar POST a esta URL (como por developers.facebook.com/docs/sharing/opengraph/... )
Glen T
1
Alguma idéia sobre como riscar o cache ao alterar o URL do og: video ????? Fiz uma pequena edição no meu vídeo e mudei o URL, e o Facebook continua mostrando a versão antiga! Obviamente, eu fiz o rascunho na depuração (e ela aparece corretamente lá), mas não no post! ... isto está me enlouquecendo!
RayOnAir
19

Se você possui muitas páginas e não deseja atualizá-las manualmente, pode fazê-lo automaticamente.

Digamos que você tenha uma página de perfil de usuário com foto:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Basta adicionar isso à sua página:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Isso atualizará o cache do Facebook. Se você usar a solução jQuery, consulte "response" no console.log - você encontrará o campo "updated_time" e outras informações úteis.

Zhorzh Alexandr
fonte
essa foi a única solução consistente que impediu o cache de imagens para mim. usando fbrefreshnão fez nada pelo meu problema.
hellatan
Oi, estou tentando esse método, mas estou recebendo alguns erros, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" graph .facebook.com ", {id:" '. $ this-> content [' canonical '].' ", scrape: true}, função (resposta) {console.log (response);});}); < / script> ');
monsterboy
Estou recebendo o seguinte erro Uncaught ReferenceError: $ não está definido (função anônima) qualquer ajuda seria muito apreciada :)
monsterboy
@monsterboy $ - este é um atalho para a função jQuery. $ .post () é o mesmo que jQuery.post () Para usar esta biblioteca, você deve importá-la primeiro: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </script>
Zhorzh Alexandr 08/04
@ ZhorzhAlexandr thx para sua resposta, mas estou usando o wordpress e tenho um post que pode ser editado todos os dias, então como eu poderia usar esse script todas as vezes antes de compartilhar?
Antwan
12

A miniatura do OG parece não ser atualizada, mesmo que você passe a variável fbrefresh. Para atualizar isso sem esperar pela limpeza automática, você precisará alterar o nome do arquivo do valor da metatag associado à miniatura e atualizar.

Seb
fonte
De acordo com as outras respostas, você pode forçar uma atualização usando o fbrefreshparâmetro URL.
Sam Mussmann
1
@SamMussmann Parece que apenas isso (se é que o faz) atualiza o cache do conteúdo da tag OG, e NÃO a imagem real encontrada na URL do referido conteúdo. EG: Você mantém as tags OG iguais, mas altera o arquivo de imagem (mantendo o nome igual) e a imagem em si permanece no cache. Não encontrei nenhuma maneira de limpar isso além de, como disse Seb, você deve alterar o nome do arquivo da imagem.
Nick M
@Nick M Você encontrou outras soluções?
Petr
Resolvido. Eu resolvi adicionando? T = TIMESTAMP ao meu URL da imagem no script php, onde geramos tags. Por enquanto isso funciona.
Petr
Apenas tentei renomear o arquivo de imagem e atualizei o valor da meta tag, não funcionando também.
Antonio Ooi
7

Eu tive os mesmos problemas ao usar og:image, várias tentativas de renomear o arquivo ou limpar o cache do FB não funcionaram nem pelo depurador do Facebook nem pelo teste através de uma conta real.

As novas diretrizes do facebook declaram que o tamanho da imagem deve ser 1200 x 630 ou, com essa proporção, isso parece estar errado, a única coisa que funcionou para mim foi usar uma imagem com dimensões quadradas .

Editar * Algumas horas voltei a usar 1200 x 630 e funcionou magicamente, foi mágico.

Também renomeei os arquivos para f * ^ * kfacebook.jpg, não tendo certeza de que ajudava, mas me senti bem.

Wyck
fonte
6

Basicamente, a resposta é paciência;)

Eu verifiquei o Linter hoje de manhã e og: title e og: url são exibidos corretamente, sem os valores redundantes. Eu acho que o FaceBook limpa automaticamente o cache em algum intervalo específico. Eu só tenho que esperar.

insira a descrição da imagem aqui

Ardee Aram
fonte
No facebook para desenvolvedores , o cache do objeto expira a cada 7 dias, e o Facebook recriará automaticamente o objeto quando ele for usado a seguir.
Venugopal 28/07
4

Acabamos de descobrir isso, pois não estávamos aprendendo a URL certa, pois a URL real tinha uma string de consulta (duh, página diferente no que diz respeito a um bot).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

O linter irá recuperar a página novamente, você não precisa esperar.

Ryan Florence
fonte
4

Sim, o facebook limpa automaticamente o cache a cada 24 horas: na verdade, o Facebook raspa as páginas e atualiza o cache a cada 24 horas https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo .

kbsbng
fonte
De acordo com a documentação atual, a duração do cache é de 30 dias.
patrickhawley
1
link atualizado para este info - developers.facebook.com/docs/plugins/faqs - você pode configurá-lo para raspar mais frequentemente
Mousey
4

Ooook, finalmente ajudou (eu uso o IP.Board). O que eu tinha que fazer era:

  1. Alterar url da imagem og: no meu site (Configuração geral).
  2. Experimente este método com? Fbrefresh = 1154464gd56

Obrigado ao autor por este tópico!

EDIT: O que mais você precisa lembrar sobre os requisitos de imagem. Por enquanto (janeiro de 2013) é: - pelo menos 200 px em ambas as direções - proporção máxima 3: 1

Matt
fonte
3

Uma coisa a acrescentar: o URL diferencia maiúsculas de minúsculas . Observe que:

apps.facebook.com/ HELLO

é diferente aos olhos do linter

apps.facebook.com/ olá

Certifique-se de usar o URL exato do site inserido nas configurações do desenvolvedor do aplicativo. Caso contrário, o linter retornará as propriedades, mas não atualizará o cache.

Justin
fonte
3

Sinto muito pessoal, mas a resposta correta é:

Não existe uma maneira infalível de atualizar o gráfico aberto og: URL da imagem com resultado imediato. Ele é armazenado em cache até atualizações fb (supostamente a cada 24 horas)

Aqui estão algumas coisas que foram relatadas como funcionando por outras pessoas, mas tive sucesso ZERO com qualquer uma delas.

  • Escolhendo "Buscar novas informações de raspar"
  • Alterar o nome do arquivo da imagem real e / ou excluir o original
  • Adicionando uma string de consulta ao URL da imagem anexando um PHP TIMESTAMP ou? Qualquer coisa
  • Adicionando a cadeia de consulta "... yoursite.com/?fbrefresh=anything" ao URL de busca do depurador
  • Escolhendo o link da API do gráfico na parte inferior da página og dev
  • Optando por ver exatamente o que o raspador vê - não parece solicitar dados de raspagem não armazenados em cache em tempo real, ele ainda mostra o URL da imagem em cache, mesmo que o arquivo não exista mais

A inspeção do seu código é sempre uma maneira de confirmar que não há um problema no cache do navegador ou em algum serviço de cache. Se as meta informações estiverem atualizadas no seu código e você tiver tentado todas as opções acima (a menos que outra sugestão seja concretizada), a resposta correta é que você não pode fazer nada além de esperar .

Philip Ingram
fonte
1

Descobri que, se sua imagem tiver 72 dpi, ocorrerá um erro no tamanho da imagem. Use 96dpi. Espero que isto ajude.

Gordon
fonte
1
  1. Vá para http://developers.facebook.com/tools/debug

  2. Cole o URL da página e clique em debug. Se o seu site estiver usando aliases de URL, verifique se você está usando o mesmo URL que o Facebook está usando para a página que está compartilhando (exemplo: no Drupal, use o caminho do nó / * em vez do alias, se a página for compartilhada por meio desse URL).

  3. Clique no link "Compartilhar visualização" no link "Veja isso na caixa de diálogo de compartilhamento"
Hans Rossel
fonte
Melhor solução! Obrigado
MeV
0

Teve uma experiência semelhante. O link do site estava mostrando um 404 na visualização que o facebook gerou. Acontece que os metadados og: url estavam incorretos. Já o consertamos há alguns dias, mas ainda estávamos vendo um 404 na pré-visualização. Usamos a ferramenta em https://developers.facebook.com/tools/debug/ e forçamos a atualização (não foi necessário anexar nenhum parâmetro a propósito) No nosso caso, o Facebook não atualizou o cache após 24 horas, mas a ferramenta ajudou a forçá-la.

jawss510
fonte
0

É um cache, muitas vezes atualizado, é o que o cache deve fazer de vez em quando. Portanto, a espera funcionará, mas às vezes você precisa fazer isso mais rapidamente. Alterar o nome do arquivo funciona.

Srneczek
fonte
Então, por que -1? Literalmente, ninguém respondeu a solução mais simples para CHANGE THE FILENAME e, na verdade, não funciona como outras respostas (+/- 5) votadas, que não ou pelo menos elas responderam, mas estão desatualizadas. Ofc, se você não pode alterar o nome do arquivo por algum motivo, esta resposta não irá ajudá-lo.
precisa saber é o seguinte
0

Eu também estava tendo esse problema. O raspador mostra as informações corretas, mas o URL de compartilhamento ainda estava preenchido com dados antigos.

A maneira como resolvi isso foi usar o método de alimentação, em vez de compartilhar, e então preencher os dados manualmente (o que não é exposto ao método de compartilhamento)

Algo assim:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};
Peege151
fonte
0

Realmente fácil resolver. Testado e funcionando. Você só precisa gerar um novo URL quando atualizar suas metatags. É tão simples quanto adicionar um "& cacheBuster = 1" ao seu URL. Se você alterar as metatags, apenas incremente o "& cacheBuster = 2"

URL original

www.example.com

URL quando as metatags são atualizadas:

www.example.com?cacheBuster=1

URL quando as metatags são atualizadas novamente:

www.example.com?cacheBuster=2

O Facebook tratará cada um como um novo URL e obterá novos metadados.

Vai
fonte
0

Anos depois, isso ainda é um problema comum, mas nem sempre é o cache do facebook: muitas vezes é um erro humano (permita-me elaborar)

OG: TYPE afeta a raspagem da sua imagem:

  1. https://ogp.me/#type_article não é o mesmo que https://ogp.me/#type_website

Esteja ciente de que og: type = website fará com que qualquer / subpágina / desse URL se torne "canônica". Isso significa que você terá problemas para atualizar suas imagens usando o raspador, não importa o que faça.

Considere esta "suposição e erro comum"

- <meta property="og:type" content="website" />=> https://www.example.org (pai)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2 /
- Ergo: /sub-page/e /child-2/herdará oog:image do pai

Esses não são "todos os sites", 1 é um site, os outros são artigos.

Se você fizer isso, o Facebook pensará que tudo isso é canônico e colocará a PRIMEIRA og: imagem em todos eles. (experimente, você verá) - se você definir o og: url como seu domínio raiz ou pai, você disse ao facebook que são todos canônicos. (há uma boa razão para isso, mas não é o tópico)

Considere esta solução (que é o que a maioria das pessoas "realmente deseja")

- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/

Se você fizer isso agora, o Facebook fornecerá muito menos problemas para raspar suas NOVAS imagens.

Para finalizar, SIM, os busters de cache, os vars aleatórios, os URLs e as sugestões alterados aqui podem funcionar, mas parecerão "vodu intermitente" se og:typenão for especificado corretamente.

PS: lembre-se de que um cache da CDN ou do servidor servirá para o raspador do Facebook, mesmo que você "pense" que pode ver a versão mais recente. (Não vou dedicar tempo a isso, a não ser salientar que ele desperdiçará quantidades colossais do seu tempo, se não for verificado duas vezes.)

Christian Žagarskas
fonte
0

Recentemente, tive um problema diferente, mas semelhante, com o Facebook e descobri que a página de raspador / depuração mencionada simplesmente não parece ler nenhuma página na íntegra. Minhas propriedades meta para o Open Graph estavam mais abaixo na seção principal, e o raspador me informava constantemente que a especificação da imagem não estava correta e usaria uma versão em cache independentemente. Mudei as tags Open Graph ainda mais para cima no código, perto do topo da página, e então tudo funcionava perfeitamente, sempre.

PaulScott
fonte