IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / Google / 【はてなブログ高速化5】 Google+のシェアボタンをカウント付きで自作する

【はてなブログ高速化5】 Google+のシェアボタンをカウント付きで自作する

2016/09/1 Google, javascript, WebTips, はてなブログ

(2016/9/6)完成版が「【はてなブログ高速化】自作ソーシャルボタン・シェアボタンで軽量化、ブログを高速に読み込む(完成) – IMUZA.com」にあります。

はてなブログのソーシャルボタン軽量化、最後の Google+ です。

これも他のボタンと同じように、Javascript で表示するか、ダイレクトリンクにするかのようです。ただ、公開範囲が違うのでしょうか、+button と Share の2種類があるようです。いずれにしても、iframeを避けようとすると、リンクしかないようです。

Share  |  Google+ Platform for Web  |  Google Developers の中ほどに Share Link のサンプルコードがあります。

<a href="https://plus.google.com/share?url={URL}" onclick="javascript:window.open(this.href,
  '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"><img
  src="https://www.gstatic.com/images/icons/gplus-64.png" alt="Share on Google+"/></a>

サンプルコードを少し変更して、hrefに直接 javascript を記述します。

(略)


    var googleButton = shareButtons.querySelector('a.googleplus-button');
    var w = 500, h = 500, x = (window.screen.width - w ) / 2, y = (window.screen.height - h) / 2;
    googleButton.setAttribute('href', "javascript:void(window.open('https://plus.google.com/share?url=" + encodeURIComponent(permalink) + "', '_blank', 'width=" + w + ",height=" + h + ",left=" + x + ",top=" + y + "'))");


(略)

カスタマイズ > フッタ に入れる html は、

  <a class="googleplus-button" href="">
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" width="36px" height="22px" viewBox="-14 -8 72 44" class="u7 uzlpSb"><path d="M32 8.2h-3v4h-4V15h4v4h3v-4h4v-2.9h-4V8.2zm6-2V8h3v15h3V4l-6 2.2z"></path><path d="M11.4 11.3v4.5h6c-.4 2.6-2.7 4.5-6 4.5-3.6 0-6.6-3.1-6.6-6.7s2.9-6.7 6.6-6.7c1.7 0 3.1.5 4.3 1.7l3.2-3.2c-2-1.8-4.5-2.9-7.5-2.9C5.3 2.5.3 7.5.3 13.6s5 11.1 11.1 11.1c6.5 0 10.7-4.6 10.7-10.9 0-.8-.1-1.7-.2-2.5H11.4z"></path></svg>
    <span class="google-count"></span>
  </a>

画像は、はてなのウェブフォントには Google+ のアイコンがありませんので svg を使っています。

Google+ のシェアカウント取得

Google+ のシェアカウント取得については、Javascript の情報が皆無でしたので苦労しましたが、php の情報を参考にやってみましたら、なんとか取得することができました。

結局、XMLHttpRequest を post で使い、パラメータを JSON で送ることでうまくいきました。

  var getGoogleShareCount = function(obj, callback) {
    var url = 'https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ';
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4 && xhr.status === 200) {
        var obj = JSON.parse(xhr.responseText);
        callback(obj.result.metadata.globalCounts.count);
      } else {
        callback(0);
      }
    };
    xhr.open('post', url, true);
    xhr.setRequestHeader( 'Content-Type', 'application/json' );
    xhr.send(JSON.stringify(obj));
  };


  var obj = {
    "method":"pos.plusones.get",
    "id":"p",
    "params":{
      "nolog":true,
      "id":permalink,
      "source":"widget",
      "userId":"@viewer",
      "groupId":"@self"
    },
    "jsonrpc":"2.0",
    "key":"p",
    "apiVersion":"v1"
  };
  getGoogleShareCount(obj, function(data) {
    googleButton.querySelector('.google-count').innerHTML = data;
  });

参考サイト
javascript – Get Google+ shares without API key for each page? – Stack Overflow

以上で、なんとか、はてなbookmark、Facebook、Twitter、Google+ のソーシャルボタンがシェアカウント付きのリンクになりました。後は、css で装飾してまとめれば完成です。

次回です。

【はてなブログ高速化4】ツイート数付きツイートボタンをオリジナルでつくる(素の javascript 付き)
【はてなブログ高速化】自作ソーシャルボタン・シェアボタンで軽量化、ブログを高速に読み込む(完成)
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com