در این مبحث می خواهیم در مورد نمایش آمار شبکه های اجتماعی که در آنها عضو هستیم بپردازیم . فیس بوک ، گوگل پلاس و تویتتر معمولا ابزاری دارند که می توانیم داده های خام را به صورت json از آنها بیرون بکشیم و نمایش دهیم . داده هایی شامل تعداد دنبال کنندگان مان ، لایک ها و تعداد افراد موجود در حلقه دوستان . البته می خواستیم سرویس فیدبارنر (feedburner) را هم که بیشتر به درد مدیران سایت ها می خورد در این بحث وارد کنیم ولی متاسفانه گوگل مدتی است که به بخش Awareness API خود پایان داده است پس فعلا از آن می گذریم
این لینک های شامل آدرس های اصلی هستند که اطلاعات مربوط به این سه سایت بزرگ را به ما خواهند داد :
http://api.twitter.com/1/users/show.json?screen_name=<screen NAME>; http://graph.facebook.com/<page ID OR NAME>; https://www.googleapis.com/plus/v1/people/<page ID>?key=<google API KEY>;
اگر شما این آدرس را با مقادیر درست در مرورگرتان باز کنید می توانید داده های مربوطه را مشاهده نمایید که برگشت داده می شوند .برای مثال اگر این آدرس (https://graph.facebook.com/fotolia.ir)را باز کنید داده هایی مربوط به صفحه فیس بوک فتولیا را مشاهده خواهید کرد :
{ "is_published": true, "talking_about_count": 3, "username": "fotolia.ir", "website": "www.fotolia.ir", "were_here_count": 0, "category": "Website", "id": "174513069252800", "name": "\u0641\u062a\u0648\u0644\u06cc\u0627 / Fotolia", "link": "https://www.facebook.com/fotolia.ir", "likes": 249 }
اگر دقت کنید خصیصه likes از نوع json هست ، همچنین با کمی تفاوت این مقدار برای تویتتر followers_count برای گوگل پلاس plusOneCount خواهد بود.
بعد از این تنها چیزی که نیاز داریم ایجاد مکانیزمی است که این داده ها را گرفته و پردازش کند تا در برنامه قابل استفاده و نمایش باشد.برای این ما یک تابع php ایجاد کردیم که از دو تابع توکار cURL و file_get_contents برای گرفتن داده ها استفاده می کند.سپس داده ها را به صورت اشیا (object) بر می گرداند.و از این اشیا به راحتی برای نمایش اطلاعات استفاده می کنیم
کد کامل را می توانید اینجا ببینید :
<?php ########### settings ######### $Twitter_Screen_Name = 'alizamani'; //Twitter screen name $Facebook_Page_ID_Or_Name = 'fotolia.ir'; // Facebook Page ID or Name $Google_Page_Id = '108490412433075369586'; // Google Page ID $Google_API_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //Google API key ############################## $twitter_link = 'http://api.twitter.com/1/users/show.json?screen_name='.$Twitter_Screen_Name; $facebook_like = 'http://graph.facebook.com/'.$Facebook_Page_ID_Or_Name; $google_page_circle = 'https://www.googleapis.com/plus/v1/people/'.$Google_Page_Id.'?key='.$Google_API_key.''; $twitter_data = get_data($twitter_link); $facebook_data = get_data($facebook_like); $google_data = get_data($google_page_circle); echo 'Twitter Followers : '. $twitter_data->followers_count .'<br />'; echo 'Facebook Fans : '. $facebook_data->likes.'<br />'; echo 'Google Page Circle : '. $google_data->plusOneCount; echo '<pre>'; //print_r($twitter_data); //print_r($facebook_data); //print_r($google_data); echo '</pre>'; function get_data($json_url='',$use_curl=false) { if($use_curl) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $json_url); $json_data = curl_exec($ch); curl_close($ch); return json_decode($json_data); } else { $json_data = file_get_contents($json_url); return json_decode($json_data); } } ?>
که این را بر می گرداند:
Twitter Followers : 46
Facebook Fans : 249
Google Page Circle : 276
واقعا از مدیریت سایت سپاس بخاطر این مطالب عالی و خوب !