Facebook Open Graph não limpando o cache

Estou tendo problemas com minhas metatags com o Open Graph. Parece que o Facebook está armazenando em cache antigos valores de minhas metatags. Os valores antigos para os atributos og:title e og:url ainda são usados, embora eu já os tenha alterado.

Eu corri o Lint em uma página no meu site , e isso apareceu:

Facebook Open Graph lint tela

Observe que há dois valores para og:title e og:url , e o último prevaleceu. No entanto, as duas últimas inputs são as inputs antigas que usei para este site. Atualmente, estou usando essas metatags (você pode verificar se vê a origem do HTML):

        

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

    1. Vá para http://developers.facebook.com/tools/debug
    2. Insira 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 tendo o mesmo problema ontem à noite e obtive esta solução em algum site.

    Facebook salva sua miniatura do cache. Ele não será atualizado mesmo se você excluir a imagem / thumnail do seu servidor. Mas o Facebook permite que você atualize usando fbrefresh

    Eu espero que isso ajude.

    A questão mais votada é bastante desatualizada:

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

    Para não desenvolvedores

    1. Use o depurador FB: https://developers.facebook.com/tools/debug/og/object
    2. Cole o URL que você deseja reciclar. (Certifique-se de usar o mesmo URL incluído na sua tag og: url)
    3. Clique no botão Buscar novamente informações de raspar novamente

    Para desenvolvedores

    1. Faça uma chamada GET programaticamente para esta URL: https://graph.facebook.com/?id=%5BYOUR_URL_HERE%5D&scrape=true (consulte: https://developers.facebook.com/docs/games_payments/takingpayments#scraping )
    2. Certifique-se de que a tag og: url incluída na cabeça dessa página corresponda àquela que você está passando.
    3. você pode até mesmo analisar a resposta do json para obter o número de compartilhamentos desse URL.

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

    • Se o og: URL da imagem permanecer o mesmo, mas a imagem tiver realmente mudado, ele não será atualizado nem recodificado pelos scrapers 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 as atualizações de imagem ou vídeo em postagens postadas anteriormente:

    • Quando você chama o depurador para desfazer as alterações em suas tags da sua página, todos os compartilhamentos anteriores do Facebook dessa URL ainda mostrarão a imagem / vídeo antigo. Não há como atualizar todas as postagens anteriores e é assim por design, por motivos de segurança. Caso contrário, alguém seria capaz de fingir que um usuário compartilhou algo que ele realmente não fez.

    Se você tiver muitas páginas e não quiser atualizá-las manualmente, poderá 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;   

    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, dê uma olhada em “response” em console.log – você encontrará o campo “updated_time” e outras informações úteis.

    A miniatura OG não parece atualizar mesmo se passar a variável fbrefresh. Para atualizar isso sem esperar pela limpeza automatizada, você precisará alterar o nome do arquivo do valor da meta tag associado à miniatura e atualizar.

    Basicamente, a resposta é paciência;)

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

    insira a descrição da imagem aqui

    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 .

    1. Visite a página do FB https://developers.facebook.com/tools/debug/og/object/
    2. Digite seu domínio.
    3. Clique no botão “Buscar novas informações de rascunho”
    4. Feito

    Nós acabamos de descobrir que não estávamos perdendo o URL certo, já que o 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 vai recheiar sua página, você não precisa esperar.

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

    1. Alterar url de og: image no meu site (configuração geral).
    2. Tente 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 agora (janeiro de 2013) é: – pelo menos 200 px em ambas as direções – relação máxima 3: 1

    Uma coisa a acrescentar é que o URL é sensível a maiúsculas e minúsculas . Observe que:

    apps.facebook.com/ HELLO

    é diferente nos olhos do linter então

    apps.facebook.com/ ola

    Certifique-se de usar o URL exato do site que foi inserido nas configurações do desenvolvedor do aplicativo. O linter retornará as propriedades de outra forma, mas não atualizará o cache.

    Eu tive os mesmos problemas usando og:image , várias tentativas de renomear o arquivo ou limpar o cache do FB não funcionou através do depurador do facebook ou teste através de uma conta real.

    As novas diretrizes do facebook indicam que o tamanho da imagem deve ser de 1200 x 630 ou ter 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 eu voltei a usar 1200 x 630 e magicamente funcionou, foi mágico.

    Eu também renomeiei os arquivos para f * ^ * kfacebook.jpg, não tenho certeza se ajudou, mas me senti bem.

    Sinto muito pessoal, mas a resposta correta é:

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

    Aqui estão as coisas que foram relatadas para trabalhar por outros, mas eu tive sucesso ZERO com qualquer um deles.

    • Escolhendo “Buscar novas informações de rascunho”
    • Alterar o nome do arquivo de imagem real e / ou excluir o original
    • Adicionando uma string de consulta ao URL da imagem, anexando um PHP TIMESTAMP ou? Anything
    • Adicionando a string 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 de desenvolvimento
    • A escolha de ver exatamente o que o raspador vê – não parece solicitar dados de varredura não armazenados em cache em tempo real, ele ainda mostra a URL da imagem armazenada em cache, mesmo que o arquivo não exista mais

    Inspecionar seu código é sempre uma maneira de confirmar que não é um problema com o cache do navegador ou algum serviço de armazenamento em cache. Se as metainformações estiverem atualizadas em seu código e você tiver tentado todas as opções acima (a menos que outra sugestão se concretize), a resposta correta é que você não pode fazer nada além de esperar .

    Descobri que, se a sua imagem tiver 72dpi, você receberá o erro de tamanho de imagem. Use 96dpi em vez disso. Espero que isto ajude.

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

    2. Cole na URL da página e clique em depurar. 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 node / * em vez do alias se a página for compartilhada por esse URL).

    3. Clique na parte “Visualização de compartilhamento” no link “Veja isso no diálogo de compartilhamento”

    Documentos do desenvolvedor do Facebook dizem que a propriedade do título tem exceção:

    Depois de 50 ações (gostos, compartilhamentos e comentários) terem sido associadas a um object, você não poderá atualizar seu título

    https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

    Teve uma experiência semelhante. Link do site estava mostrando um 404 na pré-visualização que o facebook gerou. Acontece que os metadados og: url estavam errados. Nós já havíamos consertado alguns dias atrás, mas ainda estávamos vendo um erro na pré-visualização. Usamos a ferramenta em https://developers.facebook.com/tools/debug/ e isso forçou a atualização (não foi necessário acrescentar nenhum parâmetro por sinal) No nosso caso, o Facebook não atualizou o cache após 24 horas, mas a ferramenta ajudou a forçá-lo.

    É um cache, ofc é atualizado, é isso que o cache deve fazer de vez em quando. Então, a espera acabará por funcionar, mas às vezes você precisa fazer isso mais rápido. Alterar o nome do arquivo funciona.

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

    A maneira como consegui contornar isso foi usar o método de feed, em vez de compartilhar, e depois preencher os dados manualmente (o que não é exposto com o 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' }); }; 

    Para mim, todas as soluções não funcionaram. Descobri que se você está usando o WordPress com Yoast SEO, então você tem que atualizar essas duas tags:

       

    Para atualizar os valores, você deve enviar qualquer alteração ao artigo. Se você não alterar essa data, o cache do facebook não será atualizado.

    Você também pode desativar essas tags adicionais adicionando filtros em functions.php :

     add_filter( 'wpseo_og_article_published_time', '__return_false' ); add_filter( 'wpseo_og_article_modified_time', '__return_false' ); add_filter( 'wpseo_og_og_updated_time', '__return_false' );