###前提・実現したいこと
httpとhttpsでfacebookのいいね数が違う数になるので、
httpとhttps、それぞれのいいね数の合算数を取得したいです。
※wordpressのオリジナルテーマで実現したいです。
###該当のソースコード
<?php // httpとhttpsのURLを取得 $httpurl = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $httpsurl = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // httpのいいね数を取得 $fb_url = "http://graph.facebook.com/?id=" . rawurlencode($httpurl); $curl = curl_init() ; curl_setopt( $curl, CURLOPT_URL, $fb_url ) ; curl_setopt( $curl, CURLOPT_HEADER, 1 ) ; curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false ) ; curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $curl, CURLOPT_TIMEOUT, 15 ) ; curl_setopt( $curl, CURLOPT_FOLLOWLOCATION , true ) ; curl_setopt( $curl, CURLOPT_MAXREDIRS, 5 ) ; $res1 = curl_exec( $curl ) ; $res2 = curl_getinfo( $curl ) ; curl_close( $curl ) ; // 取得したデータの整理 $json = substr( $res1, $res2['header_size'] ) ; $header = substr( $res1, 0, $res2['header_size'] ) ; // JSONデータを連想配列に直す $array = json_decode( $json ) ; $fb_count = $array -> share -> share_count; // httpsのいいね数を取得 $sfb_url = "http://graph.facebook.com/?id=" . rawurlencode($httpsurl); $scurl = curl_init() ; curl_setopt( $scurl, CURLOPT_URL, $sfb_url ) ; curl_setopt( $scurl, CURLOPT_HEADER, 1 ) ; curl_setopt( $scurl, CURLOPT_SSL_VERIFYPEER, false ) ; curl_setopt( $scurl, CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $scurl, CURLOPT_TIMEOUT, 15 ) ; curl_setopt( $scurl, CURLOPT_FOLLOWLOCATION , true ) ; curl_setopt( $scurl, CURLOPT_MAXREDIRS, 5 ) ; $sres1 = curl_exec( $scurl ) ; $sres2 = curl_getinfo( $scurl ) ; curl_close( $scurl ) ; // 取得したデータの整理 $sjson = substr( $sres1, $sres2['header_size'] ) ; $sheader = substr( $sres1, 0, $sres2['header_size'] ) ; // JSONデータを連想配列に直す $sarray = json_decode( $sjson ) ; $sfb_count = $sarray -> share -> share_count; // httpとhttpsの合算いいね数を表示 echo $fb_count + $sfb_count ; ?>###試したこと
上記コードで、一時的に表示は出来たのですが、
何回かアクセスすると、「0」表示になって、正しく取得出来きなくなるようです。
facebookのアプリの制限などがかかっているような印象ですが、原因が分かりません。
###補足情報(言語/FW/ツール等のバージョンなど)
wordpressプラグイン「sns count cache」で同様の機能があるらしいですが、プラグインを使わずに実装したい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 10:52
退会済みユーザー
2016/09/07 09:46 編集
2016/09/20 11:43