ここのところ困っていました。何って、このブログで記事を書いた後、Facebook で共有すべく、Facebook Share の bookmarklet をクリックするのですけど、開くポップアップが上記のようなもの。
OGP (Open Graph protocol) の情報を全く拾ってくれていません。
当然そのまま「リンクをシェア」ボタンを押せば、投稿結果は以下のようになります。
あまりにみすぼらしい。せっかく OGP を仕込んでいるのに台無しです。OGP の記述自体が間違えているのではとも思ったのですが、失敗ばかりではなく、きちんと情報を拾ってくれる時もあるので、なんだか良く分かりません。そして一度この状態に陥ってしまうと、Facebook 側でキャッシュされてしまうのか、同じページに対しては何度シェアしようと Bookmarklet を使用しても、この状態から脱することができませんでした。
できませんでしたが、この度ふとした拍子にその解消方法が分かったので書き留めておきます。
あなたのページにもし、Facebook コメントのウィジェットが設置されているなら、以下のような表示になっているかもしれません。(Facebook コメントは Zenback に含まれているので、任意でオフにしていなければ、Zenback を設置しているブログなら表示されていると思います。)
何やら警告が表示されています。
警告: http://www.example.com/hogehoge.html に到達できません。
URL は、まさに閲覧しているページのものです。この URL 部分がリンクになっているので、クリックします。
Facebook コメントを設置していない、あるいは上記のような警告が表示されていない場合は、デバッガーのページに直接アクセスしましょう。
そしてテキストボックスに該当ページの URL を入力し、デバッグボタンをクリックします。
上記警告の URL リンクをクリックするか、あるいは直接デバッグのページで URL を入力すると、以下のようにデバッグの結果が表示されます。
ここでなにかしらエラーが表示されるようなら、そもそも OGP の記述がどこかおかしいので、指示に従って書き換えてください。しかし何もエラーが表示されないなら、おめでとうございます。これで、長らく苦しめられたキャッシュがクリアされたはずです。再度該当ページへ戻り、Bookmarklet をクリックしてください。
見事に OGP の情報を拾ってくれるようになりました。
どうしてこのような現象が起こるのかちょっと考えてみたのですが、イメージとしては、ページが構築し終わる前に Facebook がこのページへのアクセスを試み、アクセスできない状態をキャッシュしてしまう、という感じですかね。その辺り、タイミングを調整することで根本的な解決をすることもできそうですが、当面は上記のような手順で解消できることが分かったので、とりあえず一安心です。
コメント