№ 3845 В разделах: Programming
Sysadmin
от November 9th, 2011,
В подшивках: Bash, PHP
Я сделал ежедневный cron, который мне отправляет по почте в конце дня статистику по расходу средств на моем аккаунте у Селектела. Очевидно, этого мало для целого ежедневного письма и я решил добавить туда сбор статистики Яндекс.Метрики за день. Первым делом нужно зарегистрировать ваше приложение и получить ключ. Для начала, можно получить отладочный ключ, вместо полноценного, т.к. для полноценного придется подождать премодерации.
Теперь нужно получить ваш токен:
$yandex_get_token_url="https://oauth.yandex.ru/token"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $yandex_get_token_url); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, 'grant_type=password&username=MYUSERNAME&password=MYPASSWORD& client_id=CLIENT_ID&client_secret=CLIENT_SECRET'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $token = curl_exec ($ch); curl_close ($ch);
Замените имя пользователя, пароль, id клиента и пароль клиента на ваши собственные. Ответ от сервера будет получен в формате JSON. Его очень легко раскодировать в богоугодный вид:
$token_o = json_decode($token);
$token = $token_o->access_token;
Теперь этот токен можно использовать для получения вашей статистики!
$today=date("Ymd"); $metrika_url = "http://api-metrika.yandex.ru/stat/traffic/summary.json?id=COUNTERID& pretty=1&date1=$today&date2=$today&oauth_token=$token";
Замените COUNTERID на id вашего счетчика. Далее все просто получаем JSON по сгенерированному URL и декодируем его в обычный объект.
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $metrika_url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $metrika = curl_exec ($ch); curl_close ($ch); $metrika_o = json_decode($metrika); echo "Статистика посещений сайта blindage.org:\n\n"; echo "\tПосетителей: ".$metrika_o->totals->visits."\n"; echo "\tИз них новых: ".$metrika_o->totals->new_visitors."\n"; echo "\tПросмотров: ".$metrika_o->totals->page_views."\n";
Ответ от скрипта легко заворачивается в email сообщение и отправляется вам на почту:
php5 selectel.php | mail -s "Отчет о работе сервера за `date +%d-%m-%Y`" "21h@blindage.org"
Получилось вот такое крутое письмо. При желании туда можно добавить не только статистику по посещениям, но и информацию из раздела для вебмастеров.
Fortune cookie: Today's spam: Gain length and massive thickness - women really do think about about pens size
Правда прикольная штука, надо будет такое сотворить.