Webサイトに設定した Facebook の「いいね!」ボタンが、ログインしていない場合には消えてしまうようになった。その理由。
現象の詳細
消えてしまった「いいね!」ボタンは、FBサイトで案内しているうちのXFBML版。IFRAME版はログイン状態の影響を受けない。
一度は期待通り表示されていたのに、ちょこちょこ設定を変更していたらある日(週末に。だから、サイトに施した変更自体が原因ではない。)ボタンが表示されなくなってしまった。
原因
原因は、以下の年齢制限を示すメタタグを入れたせい。
<meta property=”og:restrictions:age” content=”13+” />
これは、FBが「Object-Level Restrictions」と呼んでいる設定で、Webページの追加情報として Open Graph Tag と同様にページのヘッダ内に追加して、FBにそのページの属性を示すものだ。
「content=”13+”」は、FB上では「誰でも閲覧OK」を示すのだが(FBは規約上13歳以上に利用を制限しているので)、これがあると、「ログインしていないと閲覧者の年齢が分からないからボタンも表示しない」という事になるらしく、表示が消えてしまった。
このメタタグを削除したら、ボタン表示が再開された。
再開までの時間
2カ所でこの問題が起きたのだが、どちらも再開にはメタタグを削除してから1週間程度時間がかかった(時期をずらして削除したがどちらも)。リクエストしてくれればさっさと反映の処理をします、と書いてあるのでメタタグの削除と同時にこのリクエストも投げてみたものの、実際には「7日おきに」という通常スケジュール通りの更新にに近かったと思う。人気のないページだからかも。