丁宇 | DING Yu

在CakePHP中使用Last.fm API

如你所见,我在blog首页加了一个我最近的mp3播放列表。这里简单介绍一下如何在CakePHP中使用Last.fmAPI来实现上述功能。

1. 申请Last.fm的API Key

API页面点那个“Apply for an API account”,填好表单后即可拿到API key。

2. 下载、安装PHP Last.fm API

http://www.matto1990.com/lastfm_protocol/下载最新版的PHP Last.fm API,下载后解压缩至Cake的vendors目录,目录结构为 vendors/lastfmapi/。

打开lastfmapi.php,在文件开始处添加如下代码:

//set a new include_path
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.dirname(__FILE__));

另外建议把此文件中的require一律改为require_once。

3. 在Cake中使用Last.fm API

新建一个文件名为lastfms_controller.php的controller,并加入如下代码:

class LastfmsController extends AppController
{
        var $name = 'Lastfms';
        var $uses = null;
        var $__apiKey = 'Your API Key';
        var $__user = 'Your Last.fm username';

        function index()
        {
		App::import('Vendor', 'lastfmapi/lastfmapi');

		$authVars['apiKey'] = $this->__apiKey;
		$auth = new lastfmApiAuth('setsession', $authVars);

		$apiClass = new lastfmApi();
		$packageClass = $apiClass->getPackage($auth, 'user');

		$methodVars = array(
			'user' => $this->__user
		);
		if($lastfmRecentTracks = $packageClass->getRecentTracks($methodVars)) return $lastfmRecentTracks;
        }
}

这个index()会返回此用户最近播放过的歌曲,剩下的就不用我说了吧,呵呵。


  1. Ryan @ 2008-12-15 19:52:10 +0800:

    常来看你的网站 我也是mac的fans
    这个fm api分享不错 我觉得我们兴趣相投啊

  2. 丁宇 @ 2008-12-16 04:04:10 +0800:

    @Ryan: 我最近在玩豆瓣的API,不过搞不懂Google Data API到底怎么用。豆瓣提供了第三方开发的基于Zend Framework的php客户端,但这个客户端没有完全封装所有的事情-比如如何取出XML中的一个特定的值呢?

  3. ryan @ 2008-12-16 18:44:13 +0800:

    [emoticon:bad_smile]我对Api还仅限于一些初级应用哈哈 google data api 我准备研究研究
    多多交流

  4. 黄捷 @ 2008-12-16 22:09:56 +0800:

    我的blog改了地址了,新的地址是www.huangj.net

  5. 提子干 @ 2011-04-02 08:50:07 +0800:

    [emoticon:glasses] 兄弟,多谢了,偶的网站也是cakephp的。

  6. Big discounts @ 2011-06-03 22:13:58 +0800:

    博主挺阳光帅气的哦!有研究最近的QQ登录么?