yandex

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

Author:

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

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

https://oauth.vk.com/authorize?client_id=5781735&scope=status&response_type=token

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

<?php
$access_token = 'TOKEN&v=5.126'; 

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 '? ' . $artist . ' / ' . $album . ' / ' . $title;
}
return '?';
}

$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;
}
?>

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

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

3 thoughts on “Скрипт авто-статуса во вконтакте”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *