ウェブサイトにグーグル+1ボタンを追加しましたが、それを計算できるようにカウンターを取得したいと思います。 +1ボタンを作成する標準的な方法で作成されたiframeを入力することは可能ですか、それとも調整が必要ですか?
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone></g:plusone>
私はこのリンクを試しました: 1 、しかしこれはあまり正確ではありません
Curl/file_get_contents/readfile/wgetにアクセスできるか、外部URLを取得する方法があれば、これは非常に簡単です。
次のURLをロードします:https://plusone.google.com/_/+1/fastbutton?url=URLENCODED_URI
(更新されたURL、以下の注を参照*)
URLENCODED_URIは、+ 1の数を知りたいサイトです。 http://www.google.com (http%3A%2F%2Fwww.google.com)
たとえば、URI https://plusone.google.com/_/+1/fastbutton?url=http://www.google.com/
(UPDATED URI)をフェッチし、window.__SSR = {'c': 32414.0 ,'si'
の最初の出現箇所を見つけます。これには正規表現を使用することが望ましいですが、実装はユーザーと選択したプログラミング言語(サーバー側またはクライアント側)に任せます。
'c'
に続く浮動小数点数は、サイトが持つ+1の数です。 google.comの場合、これは32,414です。フロートについて心配する必要はありません。安全に整数に変換できます。
* UPDATE:古いURLが404に開始されたため、URLが更新されました。これは非公式の方法であるため、これは予想されることです。公式の方法は(まだ)存在しません。
コールバック関数を使用して、カウントを表示するdivの値を取得できますか?
function count() {
var count = $('#aggregateCount').html();
}
<g:plusone callback="count()"></g:plusone>
これは バブル注釈ボタン に基づいています。テストはしていませんが、このようなものは機能するはずです。
GooglePlusカウンターを取得するために機能する純粋なクライアント側のソリューションは次のとおりです。 APIキーは必要ありません。
var url = "http://www.yoursite-to-be-counted.com";
var data = {
"method":"pos.plusones.get",
"id": url,
"params":{
"nolog":true,
"id": url,
"source":"widget",
"userId":"@viewer",
"groupId":"@self"
},
"jsonrpc":"2.0",
"key":"p",
"apiVersion":"v1"
};
$.ajax({
type: "POST",
url: "https://clients6.google.com/rpc",
processData: true,
contentType: 'application/json',
data: JSON.stringify(data),
success: function(r){
setCount($(".google-plus-count"), r.result.metadata.globalCounts.count);
}
});
var setCount = function($item, count) {
if (count) {
$item.text(count);
}
};
それから私はいくつかのhtmlを持っています
<div class="google-plus-count"></div>
ここでのクレジットは this answerになります。