プラグインを利用しないで、Facebookシェア数を直接取得する方法

Wordpress
スポンサーリンク

Facebookのシェア数を取得する方法は、Sns Count Cashプラグインを使っていました。
しかしながら、いつの日か取得Facebookのシェア数がカウントできなくなっていました。

プラグインを利用しないで、直接Facebookのシェア数を取得する方法で対応したいと思います。

下記のコードで取得可能です。

$url = get_permalink();
$json = @file_get_contents('http://graph.facebook.com/?id='.rawurlencode($url));
$array = json_decode($json,true);

if(!isset($array['share']['share_count'])){
	$count = 0;
}else{
	$count = $array['share']['share_count'];
}
$fb_count = $count;
スポンサーリンク

Facebookのシェア数を取得するコードの説明

下記のURLのid=●●● 部分にシェア数を取得したいURLを入れます。

https://graph.facebook.com/?id=●●●

今回は試しに、https://liapoc.com/new-google-form.html を入れてみます。
そうすると、以下の様なソースが返ってきます。

{
   "share": {
      "comment_count": 0,
      "share_count": 2
   },
   "og_object": {
      "id": "1126324707423685",
      "description": "Google\u30d5\u30a9\u30fc\u30e0\u304c\u65b0\u3057\u304f\u306a\u3063\u305f\u306e\u3067\u3001\u4f5c\u6210\u65b9\u6cd5\u3092\u65b0\u3057\u304f\u4f5c\u6210\u3057\u306a\u304a\u3057\u307e\u3057\u305f\u3002\u4eca\u56de\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002",
      "title": "\u3010\u6700\u65b0\u7248 \u30b3\u30d4\u30da\u3067OK\u3011Googel\u30d5\u30a9\u30fc\u30e0\u3092\u4f7f\u3063\u3066\u81ea\u52d5\u8fd4\u4fe1\u306e\u554f\u5408\u305b\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u308b\u3002",
      "type": "article",
      "updated_time": "2017-05-25T07:57:35+0000"
   },
   "id": "https://liapoc.com/new-google-form.html"
}

このソースを、file_get_contents で、ファイルの内容を全て文字列に読み込みます。
file_get_contents の頭にある@は「エラー制御演算」といい、仮にエラーだった場合でも、エラーを表示させない様にしています。

読み込んだ文字列を、json_decodeで 連想配列に入れていきます。

json_decode の説明

第2引数を以下の様に設定出来ます。(省略可能)

true: 連想配列形式に変換します。
false:オブジェクト形式に変換します。(省略時のデフォルト値)

 

あとは、$array[‘share’][‘share_count’] で share_countがあるか確認し、なければ「0」を返し、share_count があればその数字を取得します。

タイトルとURLをコピーしました