googleサイトでツイートボタンを表示する

googleサイトではjavascriptを直書きできないので、ガジェットとして登録し、ガジェットをページに挿入する必要がある。
ただ、googleサイトはサイドバーにガジェットを挿入できないへっぽこ仕様なので、ページごとにガジェットを追加する必要がある模様。
テンプレートにしても、今までのページには追加されないし、結構不便。

  1. http://twitter.com/goodies/tweetbutton からツイートボタンのソースを取得する
  2. http://code.google.com/intl/ja/apis/gadgets/docs/legacy/gs.html#GGE で上記のソースを下記のように少し修正して、Content内に書いてガジェット化する
    • ガジェットはiframeになるので、そのままだとガジェットの作ったiframeのURLをポスト先と認識してしまう。とりあえずhrefから無理矢理抜き出して使う。
<script type="text/javascript">
(function(){
if (location.href.match(/&parent=([^&#]*)/)) {
	var s = '<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-via="ndruger" data-lang="ja" data-url="'
	s += RegExp.$1;
	s += '">Tweet</a>';
	document.write(s);
}
})();
</script>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
  1. ページの編集でガジェットを挿入する
    • ページの編集時などのログイン中にはhttpsなので、httpをiframeで読み込むツイートボタンは表示されない。ログイン中はhttpでページにアクセスしても302でhttpsに飛ばされるので、動作確認はログアウトしてから行う必要がある。
  2. 完成