SNSのシェアボタンの設置方法まとめ (サンプルコード付き)

ブログ記事やウェブサイトに、TwitterやFacebook、Google+などのソーシャルシェアボタンを設置する方法を説明します。2015年11月20日の、Twitterの公式シェアボタンのデザイン変更に対応し、バルーンボタンを用意しました。

サンプル (新デザイン対応版)

「プログラムのことはよく分からない…」「とりあえず設置したいのさっ」という人のために、コピーすればそれだけで使える、当サイトでも採用している横並びデザインを紹介します。2015年11月20日より、Twitterのシェアカウント数の表示が無効になります。それに伴い、バルーン型のデザインがなくなりました。「他サービスがバルーンなのに、Twitterだけバルーンじゃないとデザインが崩れる…」という場合の対策として、サイズが合うようにオリジナルボタンを作成してみました。

サンプルデモ

真ん中寄せをして、ウィンドウの横幅が480px以上の場合は、5つのシェアボタンを横並びで表示し、スマホなど、ウィンドウの幅が狭いブラウザでは、LINEを含めた6つのボタンを1行に3つずつ表示するレスポンシブ仕様になっています。ここで表示している個々のボタンは画像を使用していますが、実際と同じように動作するので、ウィンドウの幅を広げたり縮めたりしてみて下さい。実際のシェアボタンでのデモを見たい人は、「サンプルデモを見る」のボタンから別ページにアクセスして下さい。

  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像

Twitterのバルーンボタンは、「Tweet」の部分を「ツイート」に変更することで、日本語仕様にもできます。

デモを見る (VIEW DEMO)

サンプルコード

HTML

HTML

<h2>シェアボタンの表示</h2>
<p>横幅を狭めると、2行になり、LINEボタンが出現します。LINEボタンの画像は、<a href="https://media.line.me/howto/ja/" target="_blank">公式ウェブサイト</a>よりダウンロードする必要があります。</p>

<!-- シェアボタン [ここからコピー] -->
<div class="social-area-syncer">
	<ul class="social-button-syncer">
		<!-- Twitter ([Tweet]の部分を[ツイート]にすると日本語にできます) -->
		<li class="sc-tw"><a data-url="https://syncer.jp" href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="vertical" data-dnt="true" target="_blank"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M16 3.038c-.59.26-1.22.437-1.885.517.677-.407 1.198-1.05 1.443-1.816-.634.375-1.337.648-2.085.795-.598-.638-1.45-1.036-2.396-1.036-1.812 0-3.282 1.468-3.282 3.28 0 .258.03.51.085.75C5.152 5.39 2.733 4.084 1.114 2.1.83 2.583.67 3.147.67 3.75c0 1.14.58 2.143 1.46 2.732-.538-.017-1.045-.165-1.487-.41v.04c0 1.59 1.13 2.918 2.633 3.22-.276.074-.566.114-.865.114-.21 0-.416-.02-.617-.058.418 1.304 1.63 2.253 3.067 2.28-1.124.88-2.54 1.404-4.077 1.404-.265 0-.526-.015-.783-.045 1.453.93 3.178 1.474 5.032 1.474 6.038 0 9.34-5 9.34-9.338 0-.143-.004-.284-.01-.425.64-.463 1.198-1.04 1.638-1.7z" fill="#fff" fill-rule="nonzero"/></svg><span>Tweet</span></a></li>

		<!-- Facebook -->
		<li class="sc-fb"><div class="fb-like" data-href="https://syncer.jp" data-layout="box_count" data-action="like" data-show-faces="true" data-share="false"></div></li>

		<!-- Google+ -->
		<li><div data-href="https://syncer.jp" class="g-plusone" data-size="tall"></div></li>

		<!-- はてなブックマーク -->
		<li><a href="http://b.hatena.ne.jp/entry/https://syncer.jp" class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border:none;" /></a></li>

		<!-- pocket -->
		<li><a data-save-url="https://syncer.jp" data-pocket-label="pocket" data-pocket-count="vertical" class="pocket-btn" data-lang="en"></a></li>

		<!-- LINE [画像は公式ウェブサイトからダウンロードして下さい] -->
		<li class="sc-li"><a href="http://line.me/R/msg/text/?https://syncer.jp"><img src="./linebutton_36x60.png" width="36" height="60" alt="LINEに送る" class="sc-li-img"></a></li>
	</ul>

<!-- Facebook用 -->
<div id="fb-root"></div>

</div>
<!-- シェアボタン [ここまでコピー] -->

CSS

CSS

/******************************

 ソーシャルエリア全体を囲む要素
 * 他のコンテンツと距離を取りたい場合は[margin]を設定して下さい

******************************/
.social-area-syncer {
	width: 100% ;
	min-height: 190px ;
	background: #F5F1E9 ;	/* 背景色 */
	padding: 1.5em 0 ;
}

/* デスクトップPCでは高さを拡張する */
@media screen and ( min-width:480px ) {
	.social-area-syncer {
		min-height: 119px ;
	}
}


/******************************

 [ul]要素

******************************/
/* スマホ */
ul.social-button-syncer {
	width: 238px ;
	margin: 24px auto ;
	padding: 0 ;
	border: none ;
	list-style-type: none ;
}

/* デスクトップ */
@media screen and ( min-width:480px ) {
	ul.social-button-syncer {
		width: 410px ;
	}
}


/******************************

 [li]要素

******************************/
ul.social-button-syncer li {
	float: left ;
	text-align: center ;
	height: 71px ;
	margin: 0 8px ;
	padding:0 ;
}


/******************************

 各種ボタン

******************************/
/* [Twitter] */
.sc-tw {
	width: 71px ;
}

.sc-tw svg {
	width: 30px ;
	height: 30px ;
 }

.sc-tw a {
	height: 56px ;
	margin: 0 auto ;
	padding-top: 6px ;
	display: block ;
	background: #1B95E0 ;
	font-size: 12px ;
	color: #fff ;
	font-weight: 700 ;
	text-decoration: none ;
	letter-spacing: .5px ;
	border-radius: 2px ;
}

.sc-tw a:hover {
	color: #fff ;
	background: #0c7abf ;
}

.sc-tw span:before {
	white-space: pre ;
	content: '\A' ;
}

/* [Facebook] */
.sc-fb {
	z-index: 99 ;
	width: 69px ;
}

/* [LINE] */
.sc-li {
	width: 50px ;
}

.sc-li-img {
	border: none ;
	margin: 0 auto ;
	padding:0 ;
	width: 36px ;
	height: 60px ;
}

/* デスクトップPCではLINEボタンを表示しない */
@media screen and ( min-width:480px ) {
	.sc-li {
		display: none ;
	}
}

JavaScript

JavaScript

/* DOMの読み込み完了後に処理 */
if(window.addEventListener) {
	window.addEventListener( "load" , shareButtonReadSyncer, false );
}else{
	window.attachEvent( "onload", shareButtonReadSyncer );
}

/* シェアボタンを読み込む関数 */
function shareButtonReadSyncer(){

// 遅延ロードする場合は次の行と、終わりの方にある行のコメント(//)を外す
// setTimeout(function(){

// Twitter (オリジナルボタンを使用するので、コメントアウトして無効化)
// window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));

// Facebook
(function(d, s, id) {
	var js, fjs = d.getElementsByTagName(s)[0];
	if (d.getElementById(id)) return;
	js = d.createElement(s); js.id = id;
	js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0";
	fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

// Google+
var scriptTag = document.createElement("script");
scriptTag.type = "text/javascript"
scriptTag.src = "https://apis.google.com/js/platform.js";
scriptTag.async = true;
document.getElementsByTagName("head")[0].appendChild(scriptTag);

// はてなブックマーク
var scriptTag = document.createElement("script");
scriptTag.type = "text/javascript"
scriptTag.src = "https://b.st-hatena.com/js/bookmark_button.js";
scriptTag.async = true;
document.getElementsByTagName("head")[0].appendChild(scriptTag);

// pocket
(!function(d,i){if(!d.getElementById(i)){var j=d.createElement("script");j.id=i;j.src="https://widgets.getpocket.com/v1/j/btn.js?v=1";var w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js"));

//},5000);	//ページを開いて5秒後(5,000ミリ秒後)にシェアボタンを読み込む

}

PHP

PHP

<h2>シェアボタンの表示</h2>
<p>横幅を狭めると、2行になり、LINEボタンが出現します。LINEボタンの画像は、<a href="https://media.line.me/howto/ja/" target="_blank">公式ウェブサイト</a>よりダウンロードする必要があります。</p>

<!-- シェアボタン [ここからコピー] -->

<?php
	$share_url_syncer = "https://syncer.jp/";		//シェア対象のURLアドレスを指定する (HTML部分は変更不要)
?>

<div class="social-area-syncer">
	<ul class="social-button-syncer">
		<!-- Twitter [Tweet]の部分を[ツイート]に変更することで日本語仕様になります。 -->
		<li class="sc-tw"><a data-url="<?php echo $share_url_syncer ; ?>" href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="vertical" data-dnt="true" target="_blank"><svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M16 3.038c-.59.26-1.22.437-1.885.517.677-.407 1.198-1.05 1.443-1.816-.634.375-1.337.648-2.085.795-.598-.638-1.45-1.036-2.396-1.036-1.812 0-3.282 1.468-3.282 3.28 0 .258.03.51.085.75C5.152 5.39 2.733 4.084 1.114 2.1.83 2.583.67 3.147.67 3.75c0 1.14.58 2.143 1.46 2.732-.538-.017-1.045-.165-1.487-.41v.04c0 1.59 1.13 2.918 2.633 3.22-.276.074-.566.114-.865.114-.21 0-.416-.02-.617-.058.418 1.304 1.63 2.253 3.067 2.28-1.124.88-2.54 1.404-4.077 1.404-.265 0-.526-.015-.783-.045 1.453.93 3.178 1.474 5.032 1.474 6.038 0 9.34-5 9.34-9.338 0-.143-.004-.284-.01-.425.64-.463 1.198-1.04 1.638-1.7z" fill="#fff" fill-rule="nonzero"/></svg><span>Tweet</span></a></li>

		<!-- Facebook -->
		<li class="sc-fb"><div class="fb-like" data-href="<?php echo $share_url_syncer ; ?>" data-layout="box_count" data-action="like" data-show-faces="true" data-share="false"></div></li>

		<!-- Google+ -->
		<li><div data-href="<?php echo $share_url_syncer ; ?>" class="g-plusone" data-size="tall"></div></li>

		<!-- はてなブックマーク -->
		<li><a href="http://b.hatena.ne.jp/entry/<?php echo $share_url_syncer ; ?>" class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border:none;" /></a></li>

		<!-- pocket -->
		<li><a data-save-url="<?php echo $share_url_syncer ; ?>" data-pocket-label="pocket" data-pocket-count="vertical" class="pocket-btn" data-lang="en"></a></li>

		<!-- LINE [画像は公式ウェブサイトからダウンロードして下さい] -->
		<li class="sc-li"><a href="http://line.me/R/msg/text/?<?php echo rawurlencode($share_url_syncer); ?>"><img src="./linebutton_36x60.png" width="36" height="60" alt="LINEに送る" class="sc-li-img"></a></li>
	</ul>

<!-- Facebook用 -->
<div id="fb-root"></div>

</div>
<!-- シェアボタン [ここまでコピー] -->

	// ブラウザに[$html]の内容を出力
	// 運用時はHTMLのヘッダーとフッターを付けましょう。
	echo $html ;

サンプル (2015年11月20日まで)

こちらは旧版です。全て、公式のJavaScriptを用いたバージョンです。ただし、Twitterのバルーンボタンが2015年11月20日以降になくなったため、バランスがとても悪いです。その対策として、前章に、オリジナルボタンを用いたバージョンを用意してあります。

サンプルデモ

実際に稼働する様子を見たい人は、「サンプルデモを見る」をクリックして下さい。

  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像
  • ボタンのサンプル画像

デモを見る (VIEW DEMO)

サンプルコード

HTML

HTML

<h2>シェアボタンの表示</h2>
<p>横幅を狭めると、2行になり、LINEボタンが出現します。LINEボタンの画像は、<a href="https://media.line.me/howto/ja/" target="_blank">公式ウェブサイト</a>よりダウンロードする必要があります。</p>

<!-- シェアボタン [ここからコピー] -->
<div class="social-area-syncer">
	<ul class="social-button-syncer">
		<!-- Twitter -->
		<li class="sc-tw"><a data-url="https://syncer.jp" href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="vertical" data-dnt="true">ツイート</a></li>

		<!-- Facebook -->
		<li class="sc-fb"><div class="fb-like" data-href="https://syncer.jp" data-layout="box_count" data-action="like" data-show-faces="true" data-share="false"></div></li>

		<!-- Google+ -->
		<li><div data-href="https://syncer.jp" class="g-plusone" data-size="tall"></div></li>

		<!-- はてなブックマーク -->
		<li><a href="http://b.hatena.ne.jp/entry/https://syncer.jp" class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border:none;" /></a></li>

		<!-- pocket -->
		<li><a data-save-url="https://syncer.jp" data-pocket-label="pocket" data-pocket-count="vertical" class="pocket-btn" data-lang="en"></a></li>

		<!-- LINE [画像は公式ウェブサイトからダウンロードして下さい] -->
		<li class="sc-li"><a href="http://line.me/R/msg/text/?https://syncer.jp"><img src="./linebutton_36x60.png" width="36" height="60" alt="LINEに送る" class="sc-li-img"></a></li>
	</ul>

<!-- Facebook用 -->
<div id="fb-root"></div>

</div>
<!-- シェアボタン [ここまでコピー] -->

CSS

CSS

/******************************

 ソーシャルエリア全体を囲む要素
 * 他のコンテンツと距離を取りたい場合は[margin]を設定して下さい

******************************/
.social-area-syncer {
	width: 100% ;
	min-height: 190px ;
	background: #F5F1E9 ;	/* 背景色 */
	padding: 1.5em 0 ;
}

/* デスクトップPCでは高さを拡張する */
@media screen and ( min-width:480px ) {
	.social-area-syncer {
		min-height: 119px ;
	}
}


/******************************

 [ul]要素

******************************/
/* スマホ */
ul.social-button-syncer {
	width: 238px ;
	margin: 24px auto ;
	padding: 0 ;
	border: none ;
	list-style-type: none ;
}

/* デスクトップ */
@media screen and ( min-width:480px ) {
	ul.social-button-syncer {
		width: 410px ;
	}
}


/******************************

 [li]要素

******************************/
ul.social-button-syncer li {
	float: left ;
	text-align: center ;
	height: 71px ;
	margin: 0 8px ;
	padding:0 ;
}


/******************************

 各種ボタン

******************************/
/* [Twitter] */
.sc-tw {
	width: 71px ;
}

/* [Facebook] */
.sc-fb {
	z-index: 99 ;
	width: 69px ;
}

/* [LINE] */
.sc-li {
	width: 50px ;
}

.sc-li-img {
	border: none ;
	margin: 0 auto ;
	padding:0 ;
	width: 36px ;
	height: 60px ;
}

/* デスクトップPCではLINEボタンを表示しない */
@media screen and ( min-width:480px ) {
	.sc-li {
		display: none ;
	}
}

JavaScript

JavaScript

/* DOMの読み込み完了後に処理 */
if(window.addEventListener) {
	window.addEventListener( "load" , shareButtonReadSyncer, false );
}else{
	window.attachEvent( "onload", shareButtonReadSyncer );
}

/* シェアボタンを読み込む関数 */
function shareButtonReadSyncer(){

//遅延ロードする場合は次の行と、終わりの方にある行のコメント(//)を外す
//setTimeout(function(){

//Twitter
window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));

//Facebook
(function(d, s, id) {
	var js, fjs = d.getElementsByTagName(s)[0];
	if (d.getElementById(id)) return;
	js = d.createElement(s); js.id = id;
	js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0";
	fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

//Google+
var scriptTag = document.createElement("script");
scriptTag.type = "text/javascript"
scriptTag.src = "https://apis.google.com/js/platform.js";
scriptTag.async = true;
document.getElementsByTagName("head")[0].appendChild(scriptTag);

//はてなブックマーク
var scriptTag = document.createElement("script");
scriptTag.type = "text/javascript"
scriptTag.src = "https://b.st-hatena.com/js/bookmark_button.js";
scriptTag.async = true;
document.getElementsByTagName("head")[0].appendChild(scriptTag);

//pocket
(!function(d,i){if(!d.getElementById(i)){var j=d.createElement("script");j.id=i;j.src="https://widgets.getpocket.com/v1/j/btn.js?v=1";var w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js"));

//},5000);	//ページを開いて5秒後(5,000ミリ秒後)にシェアボタンを読み込む

}

PHP

PHP

<h2>シェアボタンの表示</h2>
<p>横幅を狭めると、2行になり、LINEボタンが出現します。LINEボタンの画像は、<a href="https://media.line.me/howto/ja/" target="_blank">公式ウェブサイト</a>よりダウンロードする必要があります。</p>

<!-- シェアボタン [ここからコピー] -->

<?php
	$share_url_syncer = "https://syncer.jp/" ;		//シェア対象のURLアドレスを指定する (HTML部分は変更不要)
?>

<div class="social-area-syncer">
	<ul class="social-button-syncer">
		<!-- Twitter -->
		<li class="sc-tw"><a data-url="<?php echo $share_url_syncer ; ?>" href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-count="vertical" data-dnt="true">ツイート</a></li>

		<!-- Facebook -->
		<li class="sc-fb"><div class="fb-like" data-href="<?php echo $share_url_syncer ; ?>" data-layout="box_count" data-action="like" data-show-faces="true" data-share="false"></div></li>

		<!-- Google+ -->
		<li><div data-href="<?php echo $share_url_syncer ; ?>" class="g-plusone" data-size="tall"></div></li>

		<!-- はてなブックマーク -->
		<li><a href="http://b.hatena.ne.jp/entry/<?php echo $share_url_syncer ; ?>" class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border:none;" /></a></li>

		<!-- pocket -->
		<li><a data-save-url="<?php echo $share_url_syncer ; ?>" data-pocket-label="pocket" data-pocket-count="vertical" class="pocket-btn" data-lang="en"></a></li>

		<!-- LINE [画像は公式ウェブサイトからダウンロードして下さい] -->
		<li class="sc-li"><a href="http://line.me/R/msg/text/?<?php echo rawurlencode($share_url_syncer); ?>"><img src="./linebutton_36x60.png" width="36" height="60" alt="LINEに送る" class="sc-li-img"></a></li>
	</ul>

<!-- Facebook用 -->
<div id="fb-root"></div>

</div>
<!-- シェアボタン [ここまでコピー] -->

	// ブラウザに[$html]の内容を出力
	// 運用時はHTMLのヘッダーとフッターを付けましょう。
	echo $html ;

Twitter

Twitterのシェアボタンを設置する方法の説明です。なお、2015年11月20日より、Twitterのカウント数表示が無効になります。

設置するためのコード

Twitterのシェアボタンを設置するには、下記のコードをHTML内に記述して下さい。aタグの「Tweet」というテキストが、JavaScriptによってシェアボタンに変わります。

HTML

<!-- シェアボタンに変換される -->
<a class="twitter-share-button" href="https://twitter.com/share" data-dnt="true">Tweet</a>

<!-- [head]内や、[body]の終了直前などに配置 -->
<script>
window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));
</script>

デモを見る (VIEW DEMO)

カスタマイズ

シェアボタンをカスタマイズするためのパラメータの一覧は下記の通りです。あまり知られていませんが、オプトアウト(嫌なら外せ)形式であるdntは、プライバシーの問題に関わってくるかもしれません。

パラメータ一覧

url
URLアドレスを指定すると、シェアカウントの対象となり、最初から投稿フォームに入力される。
via
ユーザーアカウント(@arayutw)を指定すると、このアカウント名が、最初から投稿フォームに入力される。先頭のアットマーク(@)は不要。
text
テキストを指定すると、最初から投稿フォームに入力される。
related
ユーザアカウント(@arayutw)を指定すると、ユーザーがシェアした後に、そのアカウントをフォローしませんか?と進める画面が表示される。先頭のアットマーク(@)は不要で、複数指定する場合はコロン(:)で区切る。
count
ボタンの形。horizontalがデフォルトでカウントが右に表示される。verticalはカウントがボタンの上部に表示される。noneはカウント表示なし。
lang
Twitterのボタン表示の言語を2文字の国コードで指定する。英語にする場合はen。
counturl
URLアドレスを指定すると、urlに指定したものより優先して、こちらがシェアカウントの対象になる。例えば、文字数の関係などで、ツイート本文には短縮URLをセットしたい場合などには、urlに短縮URLを指定して、カウント対象の正規のURLはこちらに指定する。
hashtags
ハッシュタグ(#syncer)を指定すると、最初から投稿フォームに入力される。先頭のシャープ文字(#)は不要。
size
ボタンの大きさを指定する。デフォルトはmediumで、大きくしたい場合はlargeを指定する。
dnt
シェアボタンを通して、Twitterに送信されたデータが、Twitterがユーザーにお勧め情報などを表示するのに活用することを拒否するか否か。デフォルトはfalseで許可している状態。trueを指定すると拒否できる。

パラメータの使い方

パラメータを指定するには、aタグにdata属性値で指定します。data-{パラメータ}="値"という形になります。例えば、sizeというパラメータを使ってみましょう。

HTML

<!-- [size]パラメータを使う -->
<a data-size="large" class="twitter-share-button" href="https://twitter.com/share" data-dnt="true">Tweet</a>

加えて、textも指定したい場合は次のようになります。順番は自由です。お好みのボタンにカスタマイズしましょう!

HTML

<!-- [text]パラメータを使う -->
<a data-text="デフォルトのテキスト" data-size="large" class="twitter-share-button" href="https://twitter.com/share" data-dnt="true">Tweet</a>

オリジナルボタンを作成する

Twitterのシェアボタンを、オリジナルデザインにする方法を説明します。

リンク用のURLアドレス

Twitterのシェアボタンを、用意した画像などオリジナルデザインにしたい場合は、ボタンとなる要素にaタグでリンクを付けます。そのベースとなるURLは下記の通りです。

https://twitter.com/share

クエリーを追加する

このURLアドレスのクエリーに、カスタマイズの項で紹介したパラメータを、そのまま使うことができます。例えば、シェア対象となるURLを示すurlパラメータと、デフォルトでセットされている投稿内容を示すtextパラメータを指定すると、下記の通りになります。

https://twitter.com/share?url=https://syncer.jp/&text=Syncer 知識と感動を同期(Sync)するブログ リンク

URLエンコードをする

実際には、各パラメータの値は、URLエンコード処理を施しておく必要があります。この要領で、自由にカスタマイズされた、オリジナルのシェアボタンを設置してみて下さいね。

https://twitter.com/share?url=http%3A%2F%2Fsyncer.jp&text=Syncer%20%E7%9F%A5%E8%AD%98%E3%81%A8%E6%84%9F%E5%8B%95%E3%82%92%E5%90%8C%E6%9C%9F%28Sync%29%E3%81%99%E3%82%8B%E3%83%96%E3%83%AD%E3%82%B0 リンク

例えば、WordPressなどで採用されているPHPでURLエンコードをするには、rawurlencode()を使います。

PHP

<?php
	//元となるテキスト
	$text = "Syncer 知識と感動を同期(Sync)するブログ" ;

	//URLエンコード処理
	$encoded = rawurlencode( $text ) ;

	//確認する
	echo $encoded ;

サンプル

下記はTwitterのシェアボタンを、オリジナルデザインにしたものです。クリックして挙動を確認してみて下さい。

Facebook

Facebookのいいね!ボタンを設置する方法の説明です。

設置するためのコード

Facebookのいいね!ボタンを設置するには、次の通り、HTMLとJavaScriptを設置します。注意点としては、fb-rootというID名の属性値が付いた、空のdiv要素を忘れないで下さいね。

HTML

<!-- シェアボタンに変換される -->
<div class="fb-like" data-href="http://syncer.jp" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false"></div>

<!-- [head]内や、[body]の終了直前などに配置 -->
<div id="fb-root"></div>
<script>(function(d, s, id) {
	var js, fjs = d.getElementsByTagName(s)[0];
	if (d.getElementById(id)) return;
	js = d.createElement(s); js.id = id;
	js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0";
	fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

デモを見る (VIEW DEMO)

カスタマイズ

いいね!ボタンにシェアの機能を付与するなど、シェアボタンの機能をカスタマイズする方法の説明です。

パラメータ一覧

action
ボタンをクリックした時のアクションをいいね!(like)にするか、またはシェア(recommend)にするかを指定する。
colorscheme
ボタンの色をlight、またはdarkの2種類から指定できる。
href
いいね!、またはシェア対象となるURLアドレスを指定する。
kid-directed-site
シェア対象となるウェブページが、13歳未満を対象にしている場合はtrueを指定する必要がある。
layout
ボタンのデザインを指定する。
standard … 小さいボタンの右側に説明文が掲載される。
box_count … ボタンの上にバルーン型でカウントが表示される。
button_count … ボタンの右側にカウントが表示される。
button … カウントが表示されない。
ref
シェアする時に、最初からフォームにセットされているテキストを50文字未満で指定可。
share
trueにすると、いいね!の下に、シェアボタンが追加される。
width
ボタンの幅(ピクセル)を指定する。

オリジナルボタンを作成する

Facebookのシェアボタンをオリジナルデザインにする方法を説明します。

リンク用のURLアドレス

Facebookのシェアボタンをオリジナルデザインにするためには、ボタンとなる画像などの要素を、下記のURLアドレスへのリンクするaタグで囲みます。URLアドレスのuパラメータの値には、シェア対象のURLアドレスを指定します。値となるURLアドレスは、念のため、URLエンコードしておきましょう。

https://www.facebook.com/sharer/sharer.php?u=https://syncer.jp/

URLエンコードをPHPで実現するには、rawurlencode()の関数を利用します。

PHP

<?php
//シェアしたいURLアドレス
$url = 'https://syncer.jp/' ;

//リンク用URLの作成
$href = 'https://www.facebook.com/sharer/sharer.php?u=' . rawurlencode( $url ) ;

//リンクタグを出力
echo '<a href="' . $href . '" target="_blank">シェアする</a>' ;

サンプル

Facebookのシェアボタンを、オリジナルデザインにしたサンプルです。

Google+

Google+のシェアボタンを設置する方法の説明です。

設置するためのコード

Google+のシェアボタンを設置するには、下記のHTMLとJavaScriptを利用して下さい。

HTML

<!-- この要素がJavaScriptによってシェアボタンに変わる -->
<div class="g-plus" data-action="share" data-annotation="bubble" data-href="http://syncer.jp/"></div>

<!-- [head]内や、[body]の終了直前などに配置 -->
<script src="https://apis.google.com/js/platform.js" async defer>
  {lang: "ja"}
</script>

デモを見る (VIEW DEMO)

カスタマイズ

シェアボタンをカスタマイズするための、パラメータの説明です。

パラメータ一覧

href
URLアドレスを指定すると、シェアの対象となる。
annotation
シェアボタンのデザインを指定する。inlineがデフォルトで、プロフィールとカウント数が表示される。bubbleはボタンの右側に、vertical-bubbleは上に表示します。noneだと、カウントを表示しません。
width
ボタンの横幅(ピクセル)を指定する。小さ過ぎる場合は、エラーが発生して表示されません。
height
ボタンの縦幅(ピクセル)を指定する。15202460の中から指定可能。
align
ボタンの配置をrightleftで指定できる。
expandTo
マウスを重ねた時のバルーンが表示される場所。toprightbottomleftの中から指定可。
expandTo
マウスを重ねた時のバルーンが表示される場所。toprightbottomleftの中から指定可。
onstartinteraction
関数名を指定すると、ユーザーがマウスをボタンに合わせてバルーンが表示されたタイミングで、その関数が実行されます。
onendinteraction
関数名を指定すると、表示されたバルーンが閉じられたタイミングで、その関数が実行されます。

パラメータの使い方

パラメータを指定するには、divタグにdata属性値で指定します。Twitterの場合と同様で、data-{パラメータ}="値"という形です。例えば、widthというパラメータを使ってみましょう。

HTML

<!-- [width]パラメータを使う -->
<div class="g-plus" data-width="30" data-action="share" data-annotation="bubble" data-href="https://syncer.jp/"></div>

加えて、expandToも指定するなら、次の通りです。順番に指定はありません。

HTML

<!-- [expandTo]パラメータを使う -->
<div class="g-plus" data-expandTo="bottom" data-width="30" data-action="share" data-annotation="bubble" data-href="https://syncer.jp/"></div>

言語について

シェアボタンを呼び出すJavaScript内の、jaen-USに変更すると、ボタンのラベルが英語に変わります。

HTML

<!-- [head]内や、[body]の終了直前などに配置 -->
<script src="https://apis.google.com/js/platform.js" async defer>
  {lang: "en-US"}
</script>

オリジナルボタンを作成する

Google+のシェアボタンをオリジナルデザインにする方法を説明します。

リンクを貼るURLアドレス

Google+は、下記のURLにリンクを貼れば、簡単にオリジナルボタンを実現することができます。urlのパラメータには、シェア対象となるURLアドレスの、ホストとパス(要するにhttp://抜きのURLアドレス)を値として指定して下さい。

https://plus.google.com/share?url=syncer.jp

サンプル

Google+のシェアボタンを、オリジナルデザインにしたものです。

はてなブックマーク

はてなブックマークのシェアボタンを設置する方法の説明です。

設置するためのコード

はてなブックマークのシェアボタンを設置するためのサンプルコードは下記の通りです。

HTML

<!-- この要素がJavaScriptによってシェアボタンに変わる -->
<a href="http://b.hatena.ne.jp/entry/http://syncer.jp" class="hatena-bookmark-button" data-hatena-bookmark-title="Syncer" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a>

<!-- [head]内や、[body]の終了直前などに配置 -->
<script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async">
  {lang: "ja"}
</script>

デモを見る (VIEW DEMO)

カスタマイズ

はてなブックマークのシェアボタンをカスタマイズするためのパラメータ一覧です。

パラメータ一覧

href
ブックマーク対象のURLアドレスを、http://b.hatena.ne.jp/entry/に続く形で指定する。
hatena-bookmark-title
ブックマークされた時にエントリーされるタイトルを指定する。
hatena-bookmark-layout
simple … カウント表示なしでボタンも小さい。
simple-balloon … ボタンが小さく、カウントは右側に表示。
standard-balloonは、ボタンが横長でカウントは右側に表示。
vertical-balloon … ボタンが横長でカウントは上部に表示。
hatena-bookmark-lang
ボタンの言語を日本語(ja)、または英語(en)で指定する。

パラメータの使い方

パラメータは、サンプルコードのaタグに、既に、href属性値、data属性値として存在するので、その値だけを変更して下さい。

オリジナルボタンを作成する

はてなブックマークのシェアボタンをオリジナルデザインにする方法を説明します。

リンクを貼るURLアドレス

はてなブックマークの場合、投稿用のURLというものがありません。なので、個人的に一番良いのは、エントリーページにリンクを貼ってしまうことだと思います。

はてなブックマークのエントリーページ
はてなブックマークのエントリーページ

エントリーページのURLは、ベースとなるURLアドレスに、ブックマーク対象の記事の、ホストとパス(http://なしのURLアドレス)を付ける形です。

http://b.hatena.ne.jp/entry/syncer.jp

コメントが見れないのは微妙…

はてなブックマークのオリジナル・シェアボタンを見ていると、下記のページへリンクを貼っているものをよく見かけますが、私はこのURLアドレスは嫌いです。

http://b.hatena.ne.jp/add?url=https://syncer.jp/

何故なら、ブックマークのコメントを確認できないから。下記が、リンク先となる画面です。

ブックマークコメントを見ることができない
ブックマークコメントを見ることができない

はてなブックマークのシェアボタンをクリックする人というのは、全員が全員、ブクマをするためではなく、「コメントを確認したいから」という目的の人がある程度の割合で存在していると思うのです。それを考えると、前項で紹介した、エントリーページの方が、コメントを見ることができて、さらにコメントフォームもあるので断然、親切なURLだと考えています。

サンプル

はてなブックマークのシェアボタンを、オリジナルデザインにしたものです。

pocket

pocketのシェアボタンを設置する方法の説明です。

設置するためのコード

pocketのシェアボタンを設置するためのサンプルコードは下記の通りです。

HTML

<!-- この要素がJavaScriptによってシェアボタンに変わる -->
<a data-pocket-label="pocket" data-pocket-count="vertical" class="pocket-btn" data-lang="en"></a>

<!-- [head]内や、[body]の終了直前などに配置 -->
<script type="text/javascript">!function(d,i){if(!d.getElementById(i)){var j=d.createElement("script");j.id=i;j.src="https://widgets.getpocket.com/v1/j/btn.js?v=1";var w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js");</script>

デモを見る (VIEW DEMO)

カスタマイズ

pocketのシェアボタンをカスタマイズするためのパラメータ一覧です。

パラメータ一覧

save-url
pocketの対象となるURLアドレスを指定する。
pocket-count
ボタンのデザインを選択する。noneはカウント表示なし、horizontalはボタンの右側に表示、verticalはボタンの上部に表示する。
pocket-align
ボタンの配置を左寄り(left)、または右寄り(right)で指定する。

パラメータの使い方

パラメータは、サンプルコードのaタグに、既に、href属性値、data属性値として存在するので、その値だけを変更して下さい。

オリジナルボタンを作成する

pocketのボタンをオリジナルデザインにする方法を説明します。しかし、仕様を見れば分かる通り、オリジナルボタンは、ユーザーライクではないので、お勧めできません。

リンクを貼るURLアドレス

pocketでオリジナルボタンを実現するには、ボタンとなる要素を、次のリンクタグで囲んで下さい。urlのパラメータで指定している値は、URLエンコードしておいた方が良いと思います。

http://getpocket.com/edit?url=https://syncer.jp/

ユーザーに不親切!?

リンクにアクセスした画面
リンクにアクセスした画面

pocketのオリジナルボタンに付けるリンクにアクセスすると、確認画面などなく、いきなりpocketに追加してしまいます。最初からそのページをpocketしようと考えていたユーザーなら問題がないかもしれませんが、「見たことないボタンだからとりあえず押してみた」というユーザーには不親切と言えます。「あれ?もうpocketしちゃってるんだ、これ…」と、かなりの確率で思われるんじゃないでしょうか。

意図がない、予測しない操作でpocketさせられた、不特定多数のユーザーに、「このウェブサイトのコンテンツは安易にクリックしにくいな…」などと思われてしまったら、今後、あなたのウェブサイトの発展の妨げになってしまうかもしれません。利用するユーザーがどう思うのか、という点を考慮して設置することをお勧めします。私だったら設置しません。

サンプル

pocketのシェアボタンを、オリジナルデザインにしたものです。下記リンクをクリックすると、確認画面がなく、pocketしてしまうのでご注意下さい。

LINE

LINEのシェアボタンを設置する方法の説明です。

設置する方法

サンプルコード

LINEの送るボタンを設置するためのサンプルコードは下記の通りです。画像に、指定された形でリンクタグを付けるだけなのでお手軽ですJavaScriptは必要ありません。

HTML

<!-- 画像のURLを指定すること -->
<a href="http://line.me/R/msg/text/?{message}">
	<img src="./linebutton_36x60.png" width="36" height="60" alt="LINEで送る" />
</a>

デモを見る (VIEW DEMO)

メッセージの指定

aタグ内にあるmessageの部分にテキストを指定すると、ユーザーがボタンをクリックして投稿フォームに移動した時に、そのテキストがデフォルトで入力されています。シェア対象となるURLアドレスも、テキストに含めて下さい。

http://line.me/R/msg/text/?Syncer https://syncer.jp/

テキストは、URLを含めて、次のようにURLエンコードする必要があります。

http://line.me/R/msg/text/?Syncer%20https%3A%2F%2Fsyncer.jp%2F

URLエンコードは、下記のページで手軽に行なえます。

または、例えば、PHPで動的に処理したい場合はrawurlencode()という関数を利用して下さい。

PHP

echo rawurlencode( "テキスト https://syncer.jp/" ) ;

画像の用意

LINEのシェアボタンの画像
LINEのシェアボタンの画像

LINEの場合、画像を用意する必要があります。先ほど紹介したページの一番下に、ボタン画像をダウンロードできるメニューがあるので、そこから画像をダウンロードしましょう。画像は、表示する予定の、2倍の大きさになっているため、imgタグのwidthheightの指定をするのを忘れないで下さいね。

オリジナルボタンを作成する

LINEのオリジナルボタンを作成するには、単純に、aタグで囲む要素を変更するだけで大丈夫です。例えば、下記は、公式画像ではなく、テキストをLINEのシェアボタンにしたものです。このように、あなたが用意した独自のデザインのシェアボタンを作成してみて下さいね。サンプルは、スマホでないと動作しないのでご注意下さい。

オリジナルボタンに関するまとめ

オリジナルのシェアボタンを作成する時に役に立ちそうな情報をまとめました。オリジナルボタンに付ける各リンクタグについては、それぞれのSNSの章に記してあるので、そちらをご参考下さい。

ブランドカラー

各SNSの、ブランドカラーは下記の通りです。TwitterとGoogle+については、公式ウェブサイトでブランドカラーのカラーコードが紹介されていますが、それ以外のサイトは私が画面から色を抽出して調べたものなので、正確だという保証ができないことをご留意下さい。

Twitter
#55acee
Twitter(ボタン)
#1B95E0
Facebook
#3B5999
Google+
#dd4b39
はてなブックマーク
#008FDE
pocket
#EE4056
LINE
#00C300

カウント数を取得する方法

各SNSの、ソーシャルカウント数を取得するには、PHPやJavaScriptなどでプログラミングする必要があります。その方法について下記記事にまとめてあるので、オリジナルボタンにカウントを付けたい人は、ご参考下さい。

ダウンロード

この記事で紹介したサンプルのデザインでシェアボタンを設置したい場合は、下記のファイルをダウンロードしてご利用下さい。WordPressを利用している人は、HTML版よりも、PHP版の方が使いやすいと思います。

コピーして利用する時に、スタイルシートとJavaScriptを読み込むのを忘れないで下さいね。HTMLの各ボタンのコード内にあるhttps://syncer.jp/を、シェア対象のURLアドレスに変更して下さい。また、LINEボタンの画像は、公式ウェブサイトからダウンロードして下さい。

ファイル一覧

SYNCER000320
new-share-button.html Download
new-share-button.js Download
new-share-button.css Download
new-share-button.php Download
share-button.html Download
share-button.js Download
share-button.css Download
share-button.php Download
twitter.html Download
facebook.html Download
google_plus.html Download
hatena.html Download
pocket.html Download
linebutton_36x60.png
line.html Download
readme.txt Download

ファイル名をクリックすると内容を確認できます。「Download Zip」をクリックするとファイル一式をダウンロードできます。

ご利用の際は、付属のREADMEファイル(readme.txt)をご確認下さい。

linebutton_36x60.pngはzipファイルの中に含まれていません。

Download Zip