Douban API Package 发布!

Douban API Package 是一个使用 PHP 开发且基于 Kohana v3 开发的一个扩展(Module)。

它对豆瓣 API 进行重新封包。它使用起来非常方便,可以快速开发一个 web 应用。

为什么要另外封包?
对,豆瓣官方提供了一种 PHP 的解决方案,可是需要庞大的支持库:GData(20M左右)以及可能无法修改的环境配置(租用的空间主机会遇到这样的问题)。虽说 Douban API Package 也是基于框架开发,不过 Kohana 是一个纯 PHP5 模式且体积小巧(仅有 478KB),优秀迅捷的框架。最重要的是,Douban API Package 提供了目前官方所有功能的支持。并有线上网站:魔豆豆瓣 API 控制台长期运营。

虽然它是基于 Kohana 框架开发,但是并没有使用太多的依赖,稍微熟悉可以轻松分离出来!

安装需求

  • PHP 5.2+ with curl module
  • Kohana v3 - 一款纯 PHP 5 框架,它的特点就是高安全性轻量级代码容易使用

安装步骤
步骤 0: 部署 Kohana v3

下载并安装 Kohana v3 的过程,请大家参考此教程:使用 Git 部署 Kohana 系统

步骤 1: 下载本扩展!

你可以在部署完毕的 Kohana 系统的根目录执行下面操作:

$ git submodule add git://github.com/icyleaf/douban.git modules/douban

完成!

或者你也可以从本github 项目 下载压缩包放置在 modules 文件夹下面。

步骤 2: 在 bootstrap.php 文件中启用该模块(默认情况下,存储在 `application' 文件夹)

/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
     'douban'        => MODPATH.'douban',     // Douban API Module
    // 'database'   => MODPATH.'database',   // Database access
    // 'image'      => MODPATH.'image',      // Image manipulation
    // 'orm'        => MODPATH.'orm',        // Object Relationship Mapping (not complete)
    // 'pagination' => MODPATH.'pagination', // Paging of results
    // 'paypal'     => MODPATH.'paypal',     // PayPal integration (not complete)
    // 'todoist'    => MODPATH.'todoist',    // Todoist integration
    // 'unittest'   => MODPATH.'unittest',   // Unit testing
    // 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
    ));

目录结构

douban
  +--- classes
         +--- controller               # 豆瓣样例
         +--- douban                   # Douban API Package
                +--- api               # Douban API
                +--- core.php          # Douban Core
                +--- oauth.php         # Douban OAuth
                +--- request.php       # Douban Requset 
                +--- response.php      # Douban Response
         +--- douban.php               # Douban API Class
  +--- config
         +--- douban.php               # 豆瓣 API 配置文件
         +--- user_agents.php          # 奉送给大家一些手机 User agent 配置文件
  +--- media
         +--- images                   # 奉送给大家豆瓣 API 用到的图像      
  +--- vendor
         +--- OAuth.php                # OAuth 官方推荐 PHP 库
  +--- LICENSE
  +--- README.markdown

快速上手
Douban API Package 提供一些演示用例,系统部署完毕后可以通过 http://host/demo_douban 访问。

文件路径:classes/controller/douban_demo.php

源码库:http://github.com/icyleaf/douban

祝你开发顺利!

如果任何疑问或者 Bugs 反馈,即可以在本项目中提交 Issue 或者给我发邮件:icyleaf.cn囧gmail.com (请替换 "囧" 为 @)

This entry was posted in Kohana, 网络开发 and tagged , , , . Bookmark the permalink.

12 Responses to Douban API Package 发布!

  1. Pingback: 豆瓣酱光荣退场 | LiGht's BloG

  2. GuoJing says:

    你好,我是上次联系你做Firefox插件那个人,其实我早就做完了,但是一直很忙没有发布,过一段时间我会发布,同样我也会做一个Chrome插件,请邮件联系我。

  3. deemstone says:

    你好,http://kohana.cn/这个论坛我注册不上…总是提示“机器人…”
    我用的校园网,可能学校里不只我一个人注册吧…

  4. sink says:

    http://localhost/kohana/demo_douban
    无法访问啊
    Not Found
    The requested URL /kohana/demo_douban was not found on this server.

  5. sink says:

    chmod -R 777 kohana/
    访问这个才行 http://localhost/kohana/index.php/demo_douban

  6. sink says:

    ErrorException [ Fatal Error ]: Call to undefined function html()
    MODPATH/douban/classes/controller/demo/douban.php [ 59 ]
    $output .= '你好,请在执行下面操作前通过豆瓣 OAuth 的'.html('demo_douban/verity_oauth', '验证');

    改成
    html::anchor
    才行

  7. sink says:

    http://localhost/kohana/index.php/demo_douban/my_reviews
    ErrorException [ Notice ]: Undefined index: openSearch:startIndex
    $result->index = $reviews['openSearch:startIndex']['$t'];

  8. icyleaf says:

    第一个问题的原因在于你没有开启 rewrite。
    第二个问题是我的失误,谢谢提出
    第三个问题,这个问题很诡异,如果 debug 出来是明显可以看出是有那个 key,但是总是无法读出来。等待解决中...

  9. mf says:

    遇到一个问题

    ReflectionException [ -1 ]: Class controller_douban_demo does not exist

    既然你这个package并不是很依赖 kohana,不如做个不依赖于任何库的release,岂不更好?

  10. sink says:

    Class controller_douban_demo does not exist
    这是目录没放好,我当时也装了半天kohana,才搞定。

  11. sink says:

    博主你好,kohana的数据库封装是不是不支持数组,codeigniter支持。
    像下面这样的:
    $data = array(
    'title' => 'My title' ,
    'name' => 'My Name' ,
    'date' => 'My date'
    );

    $this->db->insert('mytable', $data);

    // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

    http://codeigniter.org.cn/user_guide/database/active_record.html

  12. icyleaf says:

    kohana 的原生 DB 没有这样的用法,不过使用 ORM 可以这样 ORM::factory('user')->value($array)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>