Loading

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


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から値が返ってこないと、ページ読み込み完了にならない)。パフォーマンスとにらめっこしつつ、是非素敵なソーシャルボタンを作って下さい♪ヾ(。・ω・。)ノ゙

PHP関連記事

PHPのその他記事もまとめてますので、是非お立ち寄りください(。・ω・。)

ふぇにば|PhoEniBiR

投稿者プロフィール

わくわくしてて偉い系VTuver ふぇにば です。
少しでもお役に立てておりましたら嬉しいです(。・ω・。)

関連記事

  1. [jQuery] リアルタイムに入力フォームのバリデーションをチェックするコード…

    2018.08.09
  2. 『Excel VBA』マクロで対象ブックの印刷総枚数を取得する

    2016.06.21
  3. [jQuery] formのアクションを変更する〜フォーム送信時(Submit時…

    2018.08.10
  4. [CSS] CSSだけで手軽にコピー禁止する方法!

    2017.10.11
  5. [PHP] 入力フォームのバリデーションチェックを実装する

    2016.05.09
  6. [jQuery] jQueryでツールチップを自作する方法

    2020.05.17

コメント

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

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

CAPTCHA


New Article

  1. ChatGPT × StableDiffusion
  2. ChatGPT VS コンサルタント
  3. 注目したい5つのテクノロジートレンド2023
PAGE TOP