Скрипт авто-статуса во вконтакте

С давних пор, когда я еще был активным пользователем сети Фидонет, мне безумно нравилось использовать плагин для Winamp, который генерировал строку прослушиваемой в данный момент композиции. После перехода на foobar2000 я продолжал его использовать.

Это увлечение вылилось в подключение к last.fm, куда я с 2008 года вливаю информацию о прослушиваемой музыке.

В прошлом году меня заусило снова выводить информацию о прослушиваемой музыки куда-нибудь публично помимо last.fm. Я пытался вывести ее на свой сайт, но как я понял, строка кешировалась и не обновлялась в реальном времени.

Некоторое время спустя я наткнулся на сайт, посвещенный всяким вконтактовским штукам. Там были дурацкие скрипты авто-статусов (типа количество друзей, температура в городе, текущее время и тому подобное). Угадайте, что я сделал =)

Правильно. Скрипт для авто-статуса вконтакте, который отображает воспроизводимую в данный момент композицию. Информацию я решил брать с last.fm

Скрипт написан на php. Для его работы потребуется php-хостинг и планировщик, который будет регулярно запускать этот скрипт. Я запускаю его раз в три минуты

*/3 * * * * /путь/до/php -q /путь/до/скрипта/lasfm2vk.php

Для доступа к last.fm используется API.

API_KEY получают тут: http://www.lastfm.ru/api/accounts

так же потребуется токен. Его брать тут: http://u.to/token-vk-dlja-avtostatusa/EnTlBQ

Сам скрипт такой:

<?php
$access_token = 'TOKEN'; // get token from http://u.to/token-vk-dlja-avtostatusa/EnTlBQ

function scrobbler() {

$request_url = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=USER&api_key=API_KEY';

$xml = simplexml_load_file ($request_url);
$title = $xml->recenttracks->track->name;
$artist = $xml->recenttracks->track->artist;
$album = $xml->recenttracks->track->album;
$nowplaying = $xml->recenttracks->track->attributes()->nowplaying;

if (!is_null($nowplaying) && $nowplaying == 'true') {
return '&#128266; ' . $artist . ' / ' . $album . ' / ' . $title;
}
return '&#128263;';
}

$lastfm = scrobbler();

#$status = $lastfm;
$status = scrobbler(); 
$url = curl('https://api.vk.com/method/status.set?text='.urlencode($status).'&access_token='.$access_token);
function curl( $url ){
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $ch );
curl_close( $ch );
return $response;
}
?>

При работе скрипт отображает статус таким образом

lasfm2vk_play

Если ничего не воспроизводится, то статус становится таким

lasfm2vk_stop

Другие публикации по теме:

Локалка на гигабит по электрической сети... Комплект TRENDnet Powerline 1200 AV2 включает пару адаптеров TPL-420E2K, передающих данные на скорости до 1200 Мбит/с.Установка сведена к миниму...
Афиша в офисе В офисе появилась импровизированная афиша, где появляются аннонсы выступлений групп, чьи участники работают в компании....
В рунете появится каталог музыки для патриотическо... Министерство культуры России займётся сбором патриотических песен и выложит их в интернет. На разработку такого каталога намереваются потратить 3,1 ми...
Персональная книжная полка. Обновления... Я периодически публикую обзоры на различную прочитанную художественную литературу, но ни разу, кажется, не рассказывал, как устроена моя книжная полка...

Поделиться информацией с друзьями!

Чтобы не пропустить обновления, подпишись на RSS или почтовую рассылку (свой выбор сделали уже 128 человек!)

3 комментария к «Скрипт авто-статуса во вконтакте»

Оставить комментарий