アメブロにfacebookの「いいね!」ボタンやソーシャルブックマークボタンを設置する方法 | はじめてでもこわくない! 株式会社のつくりかた

アメブロにfacebookの「いいね!」ボタンやソーシャルブックマークボタンを設置する方法

以前、このブログで「アメブロに『Twitterでつぶやく』と『ソーシャルブックマークに追加』ボタンをつける」という記事を書きましたが、最近コソっとfacebookの「いいね!」ボタンをつけてみたら反響がありましたので、あらためてソースを公開いたします。メモ

追記:2011/6/3 Google+1ボタンやTwitterフォローボタンなどに対応した最新記事「アメブロにGoogle +1ボタンやfacebook「いいね!」ボタンなどをまとめて設置する方法」をアップしました。)


付けたいボタンは
   『ペタする』ボタン
   『Twitterでつぶやく』ボタン
   『はてなブックマークに追加する』ボタン
   『Deliciousに追加する』ボタン
   『Livedoor Clipに追加する』ボタン
   『Yahoo!ブックマークに追加する』ボタン
   『Googleブックマークに追加する』ボタン
   『FC2ブックマークに追加する』ボタン
   『Nifty Clipに追加する』ボタン
   『POOKMARK. Airlinesに追加する』ボタン
   『Buzzurl(バザール)に追加する』ボタン
そして、facebookの「いいね!」ボタンです。


これらを付けたい場所は、各ブログ記事の直後です。


『なうで紹介』ボタンの後に付けるなら完全自動化できるのですが、そうすると記事のあとにまず広告がきて、その下にボタンが表示されるようになってしまうため、今回は各記事の直下に表示されるということにこだわりました。


そのために、記事を書いた最後におまじないの一文(後述します)を必ず書かなければらないのですが・・・。

↑でも、そんなに面倒じゃないですよあせる


下記のソースを記述したJavaScriptファイルを外部に置いて、それを読み込むようにします。
(ソースが長いので、Amebaのフリープラグインの中には書ききれません。文字数制限に引っかかってしまいます。)


$(document).ready(function(){
var entries = $(".foot a:contains('記事URL')");
var cName = "div.entry .end";
for (var i = 0; i < entries.length; i++) {
var url = entries[i];
var title = $("div.entry h3.title").eq(i).text();

var nObj=new Array();
var htmlData="";
var blog='ブログ名';
htmlData+='ペタボタンの情報';

var twitterTitle = 'RT @twitterアカウント: 【' + title + '】 by 『' + blog + '』 ' + url;

nObj[0]={
href:'http://twitter.com/home/?status=' + encodeURIComponent(twitterTitle),
alt:'このエントリをtwitterでつぶやく',
src:"twitter画像のパス"
};

title += ' | ' + blog;

nObj[1]={
href:'http://b.hatena.ne.jp/append?' + url,
alt:'このエントリをはてなブックマークに追加',
src:"はてなブックマーク画像のパス"
};

nObj[2]={
href:'http://del.icio.us/post?url=' + url + '&title=' + title,
alt:'このエントリをDeliciousに追加',
src:"Delicious画像のパス"
};

nObj[3]={
href:'http://clip.livedoor.com/clip/add?link=' + url + '&title=' + title + '&jump=ref',
alt:'このエントリをLivedoor Clipに追加',
src:"Livedoor Clip画像のパス"
};

nObj[4]={
href:'http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t=' + title + '&u=' + url + '&opener=bm&ei=UTF-8',
alt:'このエントリをYahoo!ブックマークに追加',
src:"Yahoo!ブックマーク画像のパス"
};

nObj[5]={
href:'http://www.google.com/bookmarks/mark?op=add&amp;bkmk=' + url + '&amp;title=' + title,
alt:'このエントリをGoogleブックマークに追加',
src:"Googleブックマーク画像のパス"
};

nObj[6]={
href:'http://bookmark.fc2.com/user/post?url=' + url + '&title=' + title,
alt:'このエントリをFC2ブックマークに追加',
src:"FC2ブックマーク画像のパス"
};

nObj[7]={
href:'http://clip.nifty.com/create?url=' + url + '&title=' + title,
alt:'このエントリをNifty Clipに追加',
src:"Nifty Clip画像のパス"
};

nObj[8]={
href:'http://pookmark.jp/post?url=' + url + '&title=' + title,
alt:'このエントリをPOOKMARK. Airlinesに追加',
src:"POOKMARK. Airlines画像のパス"
};

nObj[9]={
href:'http://news.ecnavi.jp/config/add/confirm?url=' + url + '&title=' + title,
alt:'このエントリをBuzzurl(バザール)に追加',
src:"Buzzurl画像のパス"
};

var facebook = '<iframe src="http://www.facebook.com/plugins/like.php?href=' + url + '&amp;layout=standard&amp;show_faces=false&amp;width=460&amp;action=like&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:460px; height:35px;" allowTransparency="true"></iframe>';

for (var n=0; n < nObj.length; n++){
htmlData+='<a href="'+ nObj[n].href +'" target="_blank"><img src="'+nObj[n].src+'" alt="'+nObj[n].alt+'" title="'+nObj[n].alt+'" /></a>';
}

$(cName).eq(i).before('<div class="sbm" style="margin:20px 0;">'+htmlData+'</div>'+facebook);
}
$('.sbm a').css('margin-right','8px');
$('.sbm a img').css({'padding':'0px','margin':'0px','vertical-align':'bottom'});
})


赤文字の部分は、ご自身の情報に置き換えてください。

ボタンの画像は、あらかじめアップロードしておく必要があります。


ペタボタンの情報は、「記事を書く」画面で「ペタボタンの追加」を押したときに出てくるソース

<a href= ~ 中略 ~ </a>
をそのまま貼り付けてください。


上記ソースのJavaScriptファイルを、例えば『insertSBM.js』という名前をつけて保存したら、お使いのレンタルサーバなどに設置します。

そしてAmebaの「サイドバーの設定」→「プラグインの追加」→「フリープラグイン」の中に


<script language="javascript" charset="UTF-8" src="http://xxxxx.com(設置したURL)/insertSBM.js"></script>


と記述すれば、JavaScriptファイルを読み込むことができます。


なお、これはまだ未検証なのですが、レンタルサーバなど外部に設置できるサーバがない場合、DropBox(無料のオンラインストレージ)のpublicディレクトリにアップロードしてURLを取得するという方法でも大丈夫なようです。


そして、先にも書きましたが、今回は各記事の直下に表示されるということにこだわったため、ブログ記事を書いたら最後に毎回、「HTMLタグを表示」タブを選択した状態で、下記の一文を必ず記述してください。


<div class="end"></div>


以上です。


今回は、現在私が使用している方法をそのまま公開しましたが、「ちょっと煩雑でわかりにくいよ~パンチ!」という方もいらっしゃるかと思います。


近いうちに、jQueryのjquery.socialbuttonプラグインを使用して、もうちょっと簡潔でキレイなソースに書き換えようと思っておりますので、その際はまたこのブログで公開させていただきます。


2011/3/2追記:
京都の帽子職人3代目さんに教えていただいたのですが、1画面に5件表示でうまく動作しないとき、いったん1画面に1件表示にしてから、5件表示に戻したらうまく動作したそうです。
もしうまく動作しないときなどは、この方法を試してみてください!
京都の帽子職人3代目さん、情報ありがとうございました!)