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

С давних пор, когда я еще был активным пользователем сети Фидонет, мне безумно нравилось использовать плагин для 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

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

Реклама на грани. Музторг уел!... Играть словами в рекламе на грани фола на мой взгляд дичайший моветон. И музторг туда же. Либо это один маркетолог-матершинник ходит из одной конторы ...
Отгремели на Metal Hail Fest 2012 Все дни фестиваля с завидной периодичностью поливал дождь. Перед сценой была адовая мешанина грязи.По причине резкого сокращения общего времени выступ...

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

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

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

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