Loading

[PHP] ソーシャルボタン自作!PHPでSNSのカウント数を取得する(Facebook,Twitter等)

KAZUHIRO171013285_TP_V4

FacebookやTwitter、Google+等のシェア数・いいね数をPHPでカウントする方法をご紹介します!PHPでカウントすることができれば、結果の値を使って自由にソーシャルボタンを自作できますので、是非ご利用下さい(。・ω・。)

1. 共通プログラム

各SNSのいいね、ツイート数、シェア数をカウントするためには、対象のサイトURLを取得する必要があります!今回は、自サイトのURLを取得する下記コードを埋め込んで下さい。

# カウントを表示する対象のページのURLを取得
$get_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

2. 各種SNSのカウント数取得

PHPでFacebookの「いいね数」取得

Facebookのいいね数は、FQLを利用して下記コードで取得できます!json形式で取得しておりますので、取得時後->を利用して、値を取ってきて下さい。尚、コメント数やシェア数、その全てをあわせた合計数も同時に取得してます!

PHPでTwitterの「ツイート数」取得

Twitterのツイート数取得方法です。Twitterは仕様変更が多いので、取れなくなる可能性も高いですが・・・取れなくなった際は、随時その仕様に合わせていきましょう!

PHPでGoogle+の「プラス数」取得

Googleのポータルサイトは日本ではあまり人気はないですが、海外ではかなり活用されています!WEBページはワールドワイドな世界なので、是非こちらも追加してみて下さい!

# Google+ +数取得
$google = file_get_contents( 'https://apis.google.com/_/+1/fastbutton?url=' . urlencode( $get_url ) );
# 正規表現でカウント数のところだけを抽出
preg_match( '/\[2,([0-9.]+),\[/', $google, $result_google);

# 結果出力方法
echo $result_google[1];

PHPでHatenaBookmarkの「ブックマーク数」取得

ブックマークサイト、はてブのブックマーク数方法です!日本でははてブで管理されている方も多く、まだまだ現役なSNSです!

# HatenaBookmark ブックマーク数取得
$hate_uri = 'http://b.hatena.ne.jp/entry/json/?url='. rawurlencode($get_url);
$json = file_get_contents($hate_uri);
$result_hatena = json_decode($json);

# 結果出力方法
echo (int)$result_hatena->count;

PHPでPocketの「ポケット数」取得

ライトユーザにはあまり居ないですが、Pocketもよく使われてます!はてブと同じような立ち位置のサイトです(。・ω・。)

# Pocket ポケット数取得
$query = 'http://widgets.getpocket.com/v1/button?v=1&count=horizontal&url=' . $get_url;
$html = file_get_contents($query);
$start_str = "<em id";
$end_str = "</em>";
$pos1 = strpos($html, $start_str);
$pos2 = strpos($html, $end_str);
$count_pk = $pos2 - ($pos1 + 13);
$result_pocket = substr($html,$pos1 + 13,$count_pk);

# 結果出力方法
echo $result_pocket;

いかがでしたでしょうか、ソーシャルボタンのカウント数は、javascript等でも取得可能ですが、どちらの手法でもパフォーマンスが気になります(各種SNSから値が返ってこないと、ページ読み込み完了にならない)。パフォーマンスとにらめっこしつつ、是非素敵なソーシャルボタンを作って下さい♪ヾ(。・ω・。)ノ゙

[パワプロ] 2017年人気投票〜彼女にしたい最も見た目・性格が好みな女性キャラランキング〜

[投資] 仮想通貨入門~宝くじ感覚でBit CoinやMona Coinを売買~

関連記事

  1. [Excel VBA] マクロで対象ブックの印刷総枚数を取得する

    2016.06.21
  2. [Vim] Vimを10倍かっこよく使いこなすためのコマンド集

    2016.05.12
  3. [Excel VBA] マクロで月の日数を取得する(当月・前月・翌月)

    2016.08.02
  4. SSHでリモートコマンド実行、成功失敗の返り値(戻り値)取得方法

    2016.06.23
  5. [SQLServer] クエリのパフォーマンス調査・ボトルネックの特定

    2017.08.08
  6. [PHP] date(): It is not safe to rely on …

    2018.08.08

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


New Article

  1. sangokutenbu_toronazonazo
  2. sangokutenbu_nikyo
  3. sangokutenbu_ranking
  4. sangokutenbu_bunou
  5. gintama
PAGE TOP