前几天在捣鼓我的PageCookery主题的时候想引用豆瓣上我最近看过的电影和书,当时只是手工自己写上去的而已。我度过的书到还是好说,一年也难得有一本,但是电影就多了,手写也不是办法。于是开始研究起豆瓣的API了。发现豆瓣输出的是Atom和Json的结果,恩,我用的是Atom的,想要Json版的请看传送门。
效果预览请见传送门,详细代码如下:
<?php
function Douban($username, $subject, $apikey)
{
if ($apikey == "")
{
$apikey='064e10081295144112ea301837bf3cc3';
}
$douban='http://api.douban.com/people/' . $username . '/collection?cat=' . $subject . '&apikey=' . $apikey ;
$feed = simplexml_load_file($douban);
$children = $feed->children('http://www.w3.org/2005/Atom');
$a = $children-> entry->children('http://www.w3.org/2005/Atom')->xpath('//db:subject');
echo '<ul>';
foreach ($a as $d) echo '<li>' . $d -> title . '</li>';
echo '</ul>';
}
我把它定义成了一个函数Douban,WP就放到主题的function.php下,PageCookery就放到/lib/function_microblog.php里,其它的自己看着办咯。引用的时候只要如下形式即可
<?php Douban('lizheming', 'movie' , '');//形式是昵称|收藏类型|API_KEY ?>
收藏类型有movie|book|music三种类型可以选择,API_KEY我设置了如果为空则默认一个,但是我还是希望大家可以自己去申请一个,因为豆瓣的api有引用频率的限制,如果一个api_key很多人同时用,可能会出问题。如果使用上有什么问题,大家可以留言。
参考资料:PHP中的SimpleXML处理 //对SimpleXML的描述很详细,推荐!
谢谢分享。