Amebaブログに「Twitterへ投稿ボタン」を設置してみたよ | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

2010.08.26 追記

Twitter公式のツイートボタン設置方法は、「Amebloに設置していたツイートボタンをTwitter公式のものに変えました 」を参照してください。



はてブボタン設置用ブログパーツを改良してみたよ 」の続き。

さらに改良してTwitterへ投稿ボタンをアメブロに設置できるようにブログパーツを改良してみました。

タイトルすぐしたのはてブボタンの横にTwitterへ投稿ボタンが表示されているかと思います。

クリックすると、TwitterのWebページにジャンプし、デフォルトで記事タイトルとURLが入力された状態になります。



Twitterへ投稿ボタンを表示するためのJavaScript


書き方は前回同様にjQueryを使って組んでいます。

記事一覧(エントリーリスト) のページにも表示されるようにしていますので、多少長くなっています。

ソースは、「サイドバーの設定」メニューの「フリープラグイン」に貼り付ければ動くと思います。


<script>
  $(document).ready(function(){

    var page_url = location.href;
    if (page_url.match(/^.+\/entrylist[\-0-9]*\.html$/g )) {
      var entries = $(".newentrytitle a");
      var classname = ".updatetime";
      var flg = 0;
    } else {
      var entries = $(".foot a:contains('記事URL')");
      var classname = "div.entry .theme";
      var flg = 1;
    }
    for (i = 0; i < entries.length; i++) {
      var url = entries[i];
      if (flg == 0) {
        title = entries.eq(i).text();
      } else {
        title = $("div.entry h3.title").eq(i).text();
      }

      var hatena_btn = '<a href="http://b.hatena.ne.jp/append?' + url + '" target="_blank"><img height="12" alt="はてなブックマークに追加" src="http://b.hatena.ne.jp/images/append.gif" width="16" border="0" /></a><a href="http://b.hatena.ne.jp/entry/' + url + '" target="_blank"><img src="http://b.hatena.ne.jp/entry/image/' + url + '" border="0" /></a>';
      var twitter_btn = '<a href="http://twitter.com/home/?status=' + encodeURIComponent(title + ' ' + url) + '" target="_blank"><img alt="Twitterへ投稿" src="http://xxxxxxxxx/add_twitter.gif" border="0" /></a>';
      $(classname).eq(i).append('  <span>' + hatena_btn + ' ' + twitter_btn + '</span>');
    }
  })
</script>


はてブ用の画像は、はてなのサーバーにあるものを利用していますが、Twitterへ投稿ボタンのアイコンは自前で用意する必要があります。

こちらは、予めAmebloの方へ適当な画像をアップロードしておき、その画像のURLを変数にセットしておきます。


<img alt="Twitterへ投稿" src="http://xxxxxxxxx/add_twitter.gif" border="0" />


Twitterへ直接投稿したい場合は、TwitterのWebページのURLの後ろにstatusパラメータを付けて、ツイートしたい情報を送ります。

情報を送る際には予めURLエンコードをしておく必要があります。


<a href="http://twitter.com/home/?status=' + encodeURIComponent(title + ' ' + url) + '" target="_blank">

上記の処理で、記事内のタイトルとパーマネントリンクを取り出してTwitterへ投稿するようにしています。


ブログの内容をTwitterに流したいだけなら、色々なサービスを通して可能ですが、ブログを見た人がTwitterへ気軽に投稿できるようにこういうUIを用意しておくのも良いかもしれませんね。