Operations Lab.

facebook で外部 Web サイトのページキャッシュをクリアする

with 5 comments

情報交換や情報発信の目的で facebook を利用されている方は多いかと思います。facebook では投稿欄に外部 Web サイトの URL を記載すると、リンク先(外部 Web サイト)のページの内容をサマライズして、投稿欄に添付してくれます。添付(表示)させたくない場合は、「×」マークをクリックすることで外部ページ情報を削除できます。

facebook-201303-01

この情報は、外部 URL を貼り付けるたびに対象の Web サイトへアクセスして取得しているわけではありません。一度取得した情報を facebook 側で保持しており、同一の URL を貼り付けた場合にはキャッシュされた情報が表示されるようになっています。このキャッシュは全ユーザーで共有されているため、自分が以前に投稿していない URL であっても、他のユーザーが投稿し facebook 上に該当サイトのページキャッシュが存在する場合は、その情報が使用されます。

負荷軽減のためにこのような仕組みになっているのだと思いますが、URL 単位でキャッシュを行っているため、同一の URL でページの内容を更新した場合などでは最新の情報が表示されないことがあります。

このような場合は、facebook の開発者向けデバッグツールを使用することで、ユーザー側で facebook 上のキャッシュをクリアし最新のページ情報を再取得させることができます。

デバッガーの使用方法は簡単です。入力欄に情報を再取得したいページの URL を入力し、「デバッグ」ボタンをクリックします。

facebook-201303-03

「オブジェクトデバッガー」ページが表示されます。「オブジェクトのプロパティ」欄に、再取得前のページ情報が表示されます。オブジェクトのプロパティに表示される情報は古い情報ですが、この時点でページの再取得が行われており、facebook の内部的には新しいページ情報を使用するようになっています。

facebook-201303-02

新しいページ情報を確認したい場合は、デバッガーツールで再度同じページを取得することで、更新された情報を確認できます。

facebook-201303-04

og:updated_time にページ情報のアップデート(再取得)を行った日時が UNIX タイムスタンプ形式で表示されますので、こちらの値が更新されていることも併せて確認しておくと確実です。

Web ページ以外にも facebook は様々な情報をキャッシュしていますので、意図通りに表示されない、動作しないと言った場合にはキャッシュをクリアしてみると良いかもしれません。

広告

Written by kazu

2013/03/16 @ 00:03

カテゴリー: その他

Tagged with

コメント / トラックバック5件

Subscribe to comments with RSS.

  1. デバッグボタンをクリックしてもキャッシュがクリアされず、古い画像がサムネイルとして表示されてしまいます。
    ※投稿中のプレビューでは新しい画像が表示されるのに、実際に投稿してみたら古い画像になってしまいます。
    何回もデバッグボタンを押していますし、サイズも200px×200px~1500px×1500px以内、5M以下です。
    初めにデバッグボタンを押してから既に1日経っていますが直りません。
    どうすればよいかご教授ください。

    キャッシュクリアできません・・・

    2014/03/10 at 21:45

    • コメントありがとうございます。

      ごめんなさい、ご質問頂いたような状況になった事が無いので何とも言えないのですが、デバッグボタンを押した後のページで og:updated_time の値は増えているでしょうか。(プレビューだと表示されるという事は、読み込みは正しくできてそうですが。)

      また、元の(古い)画像は JPEG や GIF で、新しい画像は PNG 形式になっていたりしますか?PNG 形式の場合、正しく読み込めない事があるようです。

      kazu

      2014/03/11 at 01:51

      • お返事ありがとうございます。
        通りすがりのぶしつけな質問にご回答頂きありがとうございます。

        og:updated_timeも変化していますし、画像は上書きなので拡張子を含めパスも変わっていないのです。(jpg)

        http://wp-etc.navich.net/ogp_fb/
        こちらでサイズの言及があったので、サイズも変更してみましたが変わらないのです。

        画像を上書きしてから1日以上経ちますが未だに改善されません・・・。

        プレビューと実際の投稿で画像が変わるのも変ですよね。。。
        画像のURLを見ると、投稿では画像のURLの末尾が&cfs=1 となり古い画像が表示されるのに対し、
        プレヴューでは「&cfs=1&upsc」 とさらに「&upsc」が追加されて、新しい正しい画像が表示されます。

        因みに古い画像のURLからパラメータ「=1」を削除すると新しい画像になります。
        関係あるのか分かりませんが・・・

        どんなに検索してみても「デバッグでOK」というものしか見つけられず・・・。
        FBに問合わせはできないみたいなので、不具合報告から現象連絡してみようと思います。

        ありがとうございました。

        キャッシュクリアできません・・・

        2014/03/11 at 13:03

      • 返信が遅くなりました。(ごめんなさい。) こちらこそコメントありがとうございます。

        なるほど、og:updated_time が更新されているにもかかわらず、表示される画像が更新されないのですね…。

        少し試してみたところ、cfs=1 を指定していない場合は、元画像の縦横比を保持したまま縮小された画像が表示されるのに対し、cfs=1 を指定すると、縦横比は保持されず、表示エリアにマッチする様な拡大処理が行われました。
        (元画像:640×480 ⇒ cfs=1なし:277×207、cfs=1あり:398×207 の画像が返されました。)

        確認した限り画像はakamaiから配信されており、safe_image.php で処理が行われているようです。一旦保管したものを、表示する際にリサイズしているのか、保管する際にリサイズしてsafe_image.php は表示するだけなのかは分からないですが、何らかの画像変換は行われているようなので、(理由は分からないですが)変換に失敗して画像が更新できていない可能性は有りそうです。

        facebook の中の人でない限り直接の原因を探るのは難しそうですが、自分で試すとしたら、jpg の圧縮率を変えてみるとかでしょうか。あとは、Webサーバの管理者権限があるなら、別の場所(パス)に該当のjpgのみ置いて、別のURLとしてfacebookに認識させたときにどうなるか、とか。画像変換の問題であればやはり変換に失敗して正しく画像が出なさそうですし、キャッシュの取り扱いの問題であれば、(初めてキャッシュされるパスなら)同じ画像で正しく表示されるかも、と思います。(切り分けたところで、元の事象の解決にはならないですが…。)

        > FBに問合わせはできないみたいなので、不具合報告から現象連絡してみようと思います。
        解決されると良いですね。(お力になれなくてすいません。)

        kazu

        2014/03/12 at 19:26


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。