▼Menu

フェイスブックのコメントをWebページにつける(XFBML,OGPを使用)

フェイスブックの「コメント」と「いいね」を私の管理しているWebの全ページに付けてみました。W3C Markup Validation Service のエラーを最小限にしましたので紹介します。


広告

フェイスブックの「コメント」と「いいね」の設置方法

フェイスブックのコメントと「いいね」ボタン(likeボタン)は フェイスブック楽天 のページだけでなく、普通のウェブページ(ホームページ)にも付けることができます。ウェブページの情報発信やアクセスアップに良さそうなので、早速ウェブページに付けてみました。

全ページに付けるとなると、何百ページにもなります。それらの「コメント」や「いいね」をページ毎に管理してくれるようです。どのようなシステムになっているのでしょうか。フェイスブックの会員は実名なので、コメント荒らしのような人は少ないと思われます。効果があると良いのですが、どうでしょうか。

「コメント」や「いいね」情報をニュースフィードに表示させる(app_id)

フェイスブックのニュースフィードに「コメント」等を表示させるには、ウエブサイトの所有者のフェイスブックアカウント情報等が必要です。このアカウント情報を使ってウェブサイトのID情報(app_id)を取得します。これはフェイスブックアカウント情報(admins)とウェブサイトのID情報(app_id)を紐付けすることです。

app_idを取得します

まず、フェイスブックの デベロッパーズサイトのアプリ作成画面にアクセスします。この画面で、サイト名とURLを入力します。セキュリティチェックが済んだら、「Create an App」のアプリIDの作成完了画面が表示されます。このアプリID(app_id)をメモしておきます。

フェイスブックのコメント等のW3Cエラーをできるだけ回避する方法

フェイスブックのプラグイン作成画面で、普通の方法でフェイスブックの「コメント」や「いいね」のコードを取得すると、 fb:like や fb:comments のタグ部分が、XHTML1.0ではW3C Markup Validation Service のチェックでエラーになります。

エラー回避前のタグやスクリプト

ヘッドタグ内に記述するメタタグの例は次の通りです。

<meta property="og:image" content="http://example.com/hoge.jpg" />
<meta property="fb:app_id" content="123456789012345" />

ボディタグ内に記述するフェイスブックの「コメント」や「いいね」のコードの例です。

<script src="http://connect.facebook.net/ja_JP/all.js#xfbml=1"></script>
<fb:like href="http://example.com/" layout="standard" show_faces="true" send="true" width="450"></fb:like>
<script src="http://connect.facebook.net/ja_JP/all.js#xfbml=1"></script>
<fb:comments href="http://example.com/" width="500"></fb:comments>

エラーをできるだけ回避したタグやスクリプト

このエラーを回避するには、 fb:like や fb:comments のタグ部分をJavascriptで置き換えをしてやります。フェイスブックのコメントと「いいね」ボタンのスクリプトの例は次のようになりました。スクリプトは一部にPHPを使っています。jqueryも使っています。

<meta property="og:title" content="タイトルタグと同様な内容" />
<meta property="og:image" content="http://hogehoge.jp/image.jpg" />
<meta property="fb:app_id" content="123456789012345" />
<meta property="fb:admins" content="123451234567890" />
<?php $rq_uri = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']); ?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(document).ready(function($){
  var fbtag = document.createElement('fb:like');
    fbtag.setAttribute("href","<?php echo "http://".$_SERVER['SERVER_NAME'].$rq_uri; ?>");
    fbtag.setAttribute("width", "650");
    document.getElementById("facebook-like").appendChild(fbtag);
  var fbtag = document.createElement('fb:comments');
    fbtag.setAttribute("href","<?php echo "http://".$_SERVER['SERVER_NAME'].$rq_uri; ?>");
    fbtag.setAttribute("width", "650");
    document.getElementById("facebook-comments").appendChild(fbtag);
});
--></script>

上記のメタタグの所でW3Cエラーになりますが、最低でもイメージ画像とapp_idのメタタグは必要でしょう。他のメタタグも必要なら追加してください。fb:admins 情報は必須ではありませんが追加してもかまいません。

ワードプレスではURL部分をパーマリンク「<?php the_permalink(); ?>」にすれば、すべての記事で同じコードを使えます。上記のコードをヘッドタグ内に設置します。

「いいね」のlayout:standard とshow_faces:true とsend:true はデフォルト設定なら無くてもよいみたいです。

ボディタグ内の「コメント」と「いいね」ボタンの設置場所には次のコードを設置します。

<script type="text/javascript" src="http://connect.facebook.net/ja_JP/all.js#xfbml=1"></script>
<div id="facebook-like"></div>
<div id="facebook-comments"></div>

英語表示にする場合は、ja_JP の所を en_US とします。

パラメータ付きURLの場合は別ページと判断される問題

$_SERVER['REQUEST_URI']部分はURL部の後半(/***/example.php等)を表しています。この為、パラメータ付きURLの場合は別ページと判断される問題が起こります。つまり、パラメータ無しのページでは、コメントが付いていても、同じページのパラメータ付きの場合では、コメントの表示が無くなってしまったりします。

そこで、この部分を変更し正規表現を使って、次のように「?」以降のパラメータを取り除いたものを使います。

<?php $rq_uri = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']); ?>
fbtag.setAttribute("href","<?php echo "http://".$_SERVER['SERVER_NAME'].$rq_uri; ?>");

OGPをhtmlタグで指定します

OGP(Open Graph Protocol)をhtmlタグで指定します。htmlタグに次の記述を追加します。「xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#"」XHTMLでは次のようになります。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#" xml:lang="ja" lang="ja">

うまく設定されているかどうかの確認

フェイスブックの デバッガーを使ってうまく設定されているかどうか確認しましょう。デバッガーの使い方は、URLをフォームに記入して「デバッグ」をクリックします。

スポンサーリンク

この方法で「コメント」と「いいね」をフェイスブックのニュースフィードにうまく表示させることができました。また、W3C Markup Validation Serviceのチェックでエラーを最小限にして表示させることができました。

 
Main Menu |Mobile |Top Page |電気、電器 |工夫と製作 |アンテナ |デジタル放送 |修理技術1 |修理技術2 |修理過去ログ |電気柵 |生活情報 |健康情報 |名所旧跡 |ネット環境 |WordPress |写真集 |English Top
リンク集 |Sitemap |お問合せ |Pポリシー |修理掲示板
ネット環境 Menu |BBS迷惑書込 |迷惑Mail |Mail送信規制 |nPOP使い方 |BBSログ変換 |過去ログ表示 |MailCGI改造 |HPフォルダ構造 |サーバ引越 |英語サイト作り方 |二ヶ国語相互リンク |携帯サイト作り方 |XHTML Basic |XHTML Mobile P |携帯アクセス制御 |PC携帯両用サイト |サブドメイン同期 |XHTMLに書換 |TEXTメニュー |新ウィンドウに表示1 |新ウィンドウに表示2 |外部トラッキングコード |メニュー配置 |HTML一括変更 |ファイル取込 |ヘッドタグ共通化 |外部CSS |CSSコマンド |印刷用CSS |標準,互換モード |段組 |表示の速いHP |HP横幅 |HP背景 |HP文字 |HP見出し |HPタイトル |画像使い方 |altとtitle属性 |アクセスアップ |サイトマップ作成 |RSS配信 |自ドメインRSS |RSS使い方 |htaccess転送 |パラメータ削除 |wwwの有無と統一 |アクセス制限 |Adsenseクリック規制 |Adsense表示規制 |Google広告配置 |チャネルの設定 |ブログ人に広告配置 |ランダム画像切替 |デザイン自動切替 |フォルダ名取得 |Google+1ボタン |いいねボタン |Facebookのコメント |HPビルダ起動時間 |Expression Web |複数パソコンHP更新 |FFFTP使い方 |文字大きさ |モニタの選び方 |タッピング |ページ内検索 |ショートカットキー |Thumbs.db |日本語FEP |上手な日本語変換 |データ伝送 |MTUとMSS
山里の素人農業 |Daii-Wiki |私のブログ |Car Evolution |Tomy's HP |ページの先頭
 
 
as76.net
RSS
 
楽天市場
広告
Valid XHTML 1.0
Only OGP error
更新日:2011/12/11