You can create a last.fm API account at http://www.last.fm/api/account/create.
Via Composer
$ composer require thatobabusi/laravel-lastfm
Add a LASTFM_API_KEY variable to your .env configuration. You could also publish the default configuration and alter it yourself:
php artisan vendor:publish --provider="Thatobabusi\LaravelLastFm\LastfmServiceProvider"
Update config/app.php
by adding the LastfmServiceProvider:
'providers' => [
...
Thatobabusi\LaravelLastFm\LastfmServiceProvider::class,
];
If you are using Laravel 5.5 the service provider will be used automagically by Laravel's package discovery.
Tested against Laravel 5.* but probably works in most versions because it is so simple. Please create an issue if it doesn't work for you.
use Thatobabusi\LaravelLastFm\Lastfm;
use GuzzleHttp\Client;
$lastfm = new Lastfm(new Client(), 'YourApiKey');
$albums = $lastfm->userTopAlbums('AnyUsername')->get();
use Thatobabusi\LaravelLastFm\Lastfm;
public function index(Lastfm $lastfm)
{
$albums = $lastfm->userTopAlbums('AnyUsername')->get();
return view('home', compact('albums'));
}
// Get top albums for user
$albums = $lastfm->userTopAlbums('AnyUsername')->get();
// Get top artists for user
$artists = $lastfm->userTopArtists('AnyUsername')->get();
// Get recent tracks for user
$tracks = $lastfm->userRecentTracks('AnyUsername')->get();
// Get user info
$info = $lastfm->userInfo('AnyUsername')->get();
// Get track that user is now listening to, or FALSE
$trackOrFalse = $lastfm->nowListening('AnyUsername');
// Get the weekly top albums given a starting day
$albums = $lastfm->userWeeklyTopAlbums('AnyUsername', new \DateTime('2017-01-01'));
// Get the weekly top artists given a starting day
$artists = $lastfm->userWeeklyTopArtists('AnyUsername', new \DateTime('2017-01-01'));
// Get the weekly top tracks given a starting day
$tracks = $lastfm->userWeeklyTopTracks('AnyUsername', new \DateTime('2017-01-01'));
// Define time period for results
$lastfm->userTopAlbums('AnyUsername')
->period(Thatobabusi\LaravelLastFm\Constants::PERIOD_WEEK)
->get();
// Limit number of results
$lastfm->userTopAlbums('AnyUsername')
->limit(5)
->get();
// Retrieve paginated results
$lastfm->userTopAlbums('AnyUsername')
->limit(5)
->page(2)
->get();
// use these constants as an argument to ->period()
Thatobabusi\LaravelLastFm\Constants::PERIOD_WEEK = '7day';
Thatobabusi\LaravelLastFm\Constants::PERIOD_MONTH = '1month';
Thatobabusi\LaravelLastFm\Constants::PERIOD_3_MONTHS = '3month';
Thatobabusi\LaravelLastFm\Constants::PERIOD_6_MONTHS = '6month';
Thatobabusi\LaravelLastFm\Constants::PERIOD_YEAR = '12month';
Thatobabusi\LaravelLastFm\Constants::PERIOD_OVERALL = 'overall';
Read the official API documentation at http://www.last.fm/api.
Please see CHANGELOG for more information what has changed recently.
Copy phpunit.xml.dist
to phpunit.xml
and fill in your own LASTFM_API_KEY. Then run the tests using:
$ composer test
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email barryvanveen@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.