web-dev-qa-db-ja.com

Facebookのオープングラフ画像を更新する方法

次のように、オープングラフプロトコルのメタタグを使用してWebページのFacebook画像を設定した場合は、次のように言います:<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>

同じ名前の別の画像で画像を置換/更新する場合はrock.jpg、ページを共有するときに新しい画像で画像を更新するためにFacebookを取得するにはどうすればよいですか?このリンクを使用してFacebookにページのデータを強制的に取得させる http://developers.facebook.com/tools/debug は画像を更新しません。

33
eloone

これは私がこの問題に対して見つけた最も一貫した答えです: https://stackoverflow.com/a/21468084/339698

あなたがそのリンクに行くのが面倒なら、クリアしようとしているURLでajaxリクエストをPOSTできます:

$.post(
    'https://graph.facebook.com',
    {
        id: 'http://www.site.com/my/share/url/',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);
57
hellatan

Facebookは、サーバー上の独自の画像に画像を保存し、24時間キャッシュします。キャッシュの遅延は将来変更される可能性があるため、チェックするには、facebookが画像から作成した画像を開き、httpヘッダーの「max-age」値を確認するだけです。したがって、画像を変更すると、このリンク http://developers.facebook.com/tools/debug を使用してデータの取得を強制しても、facebookは24時間までバージョンを更新しません。

これを解決するには、変更の効果をすぐに確認する必要がある場合は、画像の名前を変更する必要があります。したがって、古いバージョンがrock.jpg それに名前を付けます rock2.jpgその後、このリンクを使用します http://developers.facebook.com/tools/debug facebookで更新された画像から新しい画像を作成します。これにより、Facebook共有内のWebページのFacebook画像がすぐに更新されます。

41
eloone

キャッシュプラグインを使用している場合は、すべてのキャッシュをクリアしてください。また、使用している画像の推奨Facebookサイズが1200(w)x 630(h)または600 x 315であることを確認してください。

1
csandreas1

この投稿が作成された数年後、これはまだ問題ですが、Facebookのキャッシュではありません:それは非常に頻繁に人為的なエラーです(詳細を説明することを許可します)

OG:TYPEは画像のスクレイプに影響します:

  1. https://ogp.me/#type_articleと同じではないhttps://ogp.me/#type_website

Og:type = websiteにより、そのURLの/ sub-pages /が「標準」になることに注意してください。これは、何をしてもスクレーパーを使用して画像を更新するのに問題があることを意味します。

この「仮定とよくある間違い」を考慮してください

-<meta property="og:type" content="website" /> => https://www.example.org (親)
-<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/
-エルゴ:/sub-page/および/child-2/は親のog:imageを継承します

それらは「すべてのWebサイト」ではなく、1はWebサイトであり、その他は記事です。

そうすると、Facebookはそれらすべてが正規のものであると判断し、最初のog:imageをそれらすべてに配置します。 (試してみてください)-og:urlをルートドメインまたは親ドメインに設定すると、facebookでそれらがすべて正規であると通知したことになります。 (それには正当な理由がありますが、話題から外れています)

このソリューションを検討してください(ほとんどの人が「本当に欲しい」ものです)

-<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/

そうすれば、Facebookは新しい画像をスクレイピングする際の問題をはるかに少なくします。

最後に、はい、ここでキャッシュバスター、ランダム変数、URLの変更、提案は機能しますが、og:typeが正しく指定されていないと、 "断続的なブードゥー"のように見えます。

PS:CDNまたはサーバーサイドキャッシュは、最新バージョンを「見る」ことができても、Facebookのスクレイパーに提供されることに注意してください。 (ダブルチェックしないと膨大な時間を無駄にすることを指摘する以外、これに時間を費やすことはありません。)