豆瓣API 客户端
Python客户端
google code douban-python项目
Java客户端
google code douban-java项目
PHP客户端
google code douban-php-client项目
Javascript客户端
对于javascript开发人员,豆瓣API提供一种更简单的方式可以直接在HTML页面中使用API,下面给出这种使用方式的简单示例。
首先你需要在HTML页面中如下script标签:
<script type="text/javascript" src="http://www.douban.com/js/api.js?v=2" />
之后你需要在javascript中设置好你的apikey:
DOUBAN.apikey = 'c4579586f41a90372f762cb65c78be5d'
而后你就可以调用豆瓣API,其中通过定义callback函数来操作返回的JSON数据:
DOUBAN.getMovie({
id:'2340927',
callback:function(movie){
var title = movie.title['$t'];
...
}
})
此外,豆瓣也提供了解析函数来帮助你更容易地使用JSON格式的返回值。使用豆瓣提供的解析函数,你需要在页面中添加如下的script标签:
<script type="text/javascript" src="http://www.douban.com/js/api-parser.js?v=1"></script>
接下来你就可以使用豆瓣提供的解析函数来处理返回值,例如:
var book = DOUBAN.parseSubject(result)
解析函数返回更容易使用的javascript对象,例如你可以这样得到书的封面图片:
book.link.image
下面HTML页面使用API获得ID为2340927电影的信息并展示在页面上(注意将{yourapikey}替换为你的API Key)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE></TITLE>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<style>
body {padding:0;margin: 0;background: #FEFEFE;}
body,td,th { font: 12px Arial, Helvetica, sans-serif; line-height: 150%; }
span.title {
margin:5px;
}
</style>
<script type="text/javascript" src="http://www.douban.com/js/api.js?v=2"></script>
<script type="text/javascript" src="http://www.douban.com/js/api-parser.js?v=1"></script>
<BODY>
</BODY>
<script>
DOUBAN.apikey = {yourapikey}
DOUBAN.getMovie({
id:'2340927',
callback:function(re){
var subj = DOUBAN.parseSubject(re)
var tl = subj.title ? subj.title : "";
var author = subj.author ? subj.author : "";
var di = subj.attribute.director ? subj.attribute.director.join(' / ') : "";
var tmp = "<img src="+subj.link.image+" style='margin:10px;float:left'>";
tmp += "<div>Title : <a href="+subj.link.alternate+" target='_blank'>"+tl+"</a></div>";
if (subj.attribute.author) tmp += "<div>Authors : "+(subj.attribute.author.join(' / '))+"</div>";
if (subj.attribute.director) tmp += "<div>Director : "+(subj.attribute.director.join(' / '))+"</div>";
if (subj.attribute.cast) tmp += "<div>Casts : "+(subj.attribute.cast.join(' / '))+"</div>";
if (subj.attribute.aka) tmp += "<div>A.k.a : "+(subj.attribute.aka.join(' <br/> '))+"</div>";
if (subj.attribute.language) tmp += "<div>Language : "+(subj.attribute.language.join(' / '))+"</div>";
if (subj.attribute.country) tmp += "<div>Country : "+(subj.attribute.country.join(' / '))+"</div>";
if (subj.rating.average)
tmp +="<div>Rating: "+subj.rating.average+" / "+subj.rating.numRaters+decodeURI("%E4%BA%BA")+ "</div>"
tmp += "<p>"+(subj.summary ? subj.summary : "")+"</p>";
document.body.innerHTML = tmp;
}
})
</script>
</HTML>
注:实现上,豆瓣API使用 JSONP 方式来支持跨域调用API 因此你也可以使用自己熟悉的javascript库来调用JSONP风格的豆瓣API. 此时,你需要将alt设置为xd同时提供callback参数。
例如使用JQuery,前面的例子则可以写为
$.getJSON("http://api.douban.com/movie/subject/2340927?alt=xd&callback=?", function(movie){
var title = movie.title['$t'];
...
});