Facebookのシェア数を取得する方法は、Sns Count Cashプラグインを使っていました。
しかしながら、いつの日か取得Facebookのシェア数がカウントできなくなっていました。
プラグインを利用しないで、直接Facebookのシェア数を取得する方法で対応したいと思います。
下記のコードで取得可能です。
$url = get_permalink(); $json = @file_get_contents('https://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 があればその数字を取得します。
コメント