【方法掲載】ブログのSNSシェアボタンにシェアされた数を表示するようにした
このブログはそれほど人が来るわけではないので、表示しないほうがいいのかなとも思ったけど所詮備忘録のブログだしカッコつけても仕方がない。ということで、シェア数を表示するようにした。
この方法はウィジェットで表示していなくても、そのページのシェア数が取得できる。対象のSNSはこのブログで対応させているTwitter、Facebook、はてなブックマークの3つ。
方法
それぞれapiが公開されているのでとても簡単。
http://urls.api.twitter.com/1/urls/count.json?url=[URL]
http://graph.facebook.com/[URL]
はてブ
http://api.b.st-hatena.com/entry.count?url=[URL]
[URL]となっているところにそのページのurlを入れる。http、httpsからのやつ。
WordPressの場合はここにパーマリンクのタグを入れる。この時「the_permalink()」だと出力しちゃうので、ちゃんと「get_permalink()」にする。
するとそれぞれ、
{"count":11434,"url":"http:\/\/google.com\/"}
{ "id": "http://google.com", "shares": 10233903, "comments": 10119 }
1
のような値が返ってくる。jsonとして返ってくるので、後ほど一旦デコードする。
PHPで値を取得する
urlができたら実際に取得していく。こんな感じ。
<?php $url = "http://urls.api.twitter.com/1/urls/count.json?url=" . get_permalink(); $json = file_get_contents($url); $obj = json_decode($json , true); $twitter_count = isset($obj['count']) ? $obj['count'] : '0'; $url = "http://graph.facebook.com/" . get_permalink(); $json = file_get_contents($url); $obj = json_decode($json , true); $fb_count = isset($obj['shares']) ? $obj['shares'] : '0'; $url = "http://api.b.st-hatena.com/entry.count?url=" . get_permalink(); $json = file_get_contents($url); $obj = json_decode($json , true); $hatebu_count = isset($obj) ? $obj : '0'; ?>
はてブはデコードいらないかもだけど、流れでやった。これによりそれぞれの変数が、値があればその数字を、なければ0を格納している。
あとはこう。
ツイートする <?php echo $twitter_count; ?>
これでツイートボタンの横にシェア数が表示された。
参考になったサイト
今回参考にしたサイトです。ありがとうございます。
まとめ
シェアしてくださいお願いしますm(_ _)m