Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

douban_api

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

douban_api

  • 0.1.6
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

douban_api

Simple Ruby wrapper for Douban API V2

这个项目仍在开发中,缺少文档和测试,欢迎贡献。

Installation

gem install douban_api

Sample Sinatra App

完整的应用请到 https://github.com/seansay/douban_api_sinatra_example

Demo: http://doubanapi.notimportant.org/

require 'rubygems'
require 'sinatra'
require 'haml'
require 'douban_api'

enable :sessions

set :app_file, __FILE__
set :root, File.dirname(__FILE__)
set :views, 'views'
set :public_folder, 'public'

# 设置回调的URL和所需的scope(http://developers.douban.com/wiki/?title=oauth2)
set :callback_url, "http://doubanapi.notimportant.org/connect"
set :scope, "douban_basic_common,shuo_basic_r,shuo_basic_w"


# 设置 apikey和secret,可在 http://developers.douban.com/apikey/ 处查看
Douban.configure do |config|
  config.client_id = ENV['DOUBAN_API_KEY']
  config.client_secret = ENV['DOUBAN_API_SECRET']
end


get '/' do
  haml :index, :layout => :'layouts/application'
end

get '/login' do
  redirect Douban.authorize_url(:redirect_uri => settings.callback_url, :scope => settings.scope)
end

get '/connect' do
  response = Douban.get_access_token(params[:code], :redirect_uri => settings.callback_url)
  session[:access_token] = response.access_token
  session[:user_id] = response.douban_user_id
  redirect "/timeline"
end

get '/timeline' do
  @client = Douban.client(:access_token => session[:access_token], :user_id => session[:user_id])
  @statuses = @client.timeline
  haml :timeline, :layout => :'layouts/application'
end

API Useage Examples

client = Douban.client(:access_token=>access_token, :user_id => user_id)

# 获取已认证用户对音乐的所有标签
client.user_music_tags

=> [{"count"=>166, "alt"=>"http://music.douban.com/tag/内地", "title"=>"内地"},
 {"count"=>155, "alt"=>"http://music.douban.com/tag/摇滚", "title"=>"摇滚"},
 {"count"=>139, "alt"=>"http://music.douban.com/tag/美国", "title"=>"美国"},
 {"count"=>127, "alt"=>"http://music.douban.com/tag/台湾", "title"=>"台湾"},
 {"count"=>109, "alt"=>"http://music.douban.com/tag/Pop", "title"=>"Pop"},
 {"count"=>105, "alt"=>"http://music.douban.com/tag/2011", "title"=>"2011"},
 {"count"=>100, "alt"=>"http://music.douban.com/tag/华语", "title"=>"华语"},
 {"count"=>97, "alt"=>"http://music.douban.com/tag/女声", "title"=>"女声"},
 {"count"=>87, "alt"=>"http://music.douban.com/tag/Rock", "title"=>"Rock"},
 {"count"=>83, "alt"=>"http://music.douban.com/tag/民谣", "title"=>"民谣"},
 {"count"=>80, "alt"=>"http://music.douban.com/tag/2010", "title"=>"2010"},
 {"count"=>77, "alt"=>"http://music.douban.com/tag/欧美", "title"=>"欧美"},
 {"count"=>73, "alt"=>"http://music.douban.com/tag/英国", "title"=>"英国"},
 {"count"=>73, "alt"=>"http://music.douban.com/tag/中国", "title"=>"中国"},
 {"count"=>65, "alt"=>"http://music.douban.com/tag/2012", "title"=>"2012"},
 {"count"=>60, "alt"=>"http://music.douban.com/tag/男声", "title"=>"男声"},
 {"count"=>55, "alt"=>"http://music.douban.com/tag/流行", "title"=>"流行"},
 {"count"=>52, "alt"=>"http://music.douban.com/tag/indie", "title"=>"indie"},
 {"count"=>52, "alt"=>"http://music.douban.com/tag/rock", "title"=>"rock"},
 {"count"=>48, "alt"=>"http://music.douban.com/tag/Indie", "title"=>"Indie"}]  
 
 # 已登录用户的豆邮收件箱
 client.inbox
 
 => [{"status"=>"R",
   "sender"=>
    {"avatar"=>
      "http://img3.douban.com/view/site/small/public/fc82eb2dcec6ed0.jpg",
     "alt"=>"http://site.douban.com/fuzz/",
     "id"=>"104427",
     "name"=>"THE FUZZ 法兹",
     "uid"=>"fuzz"},
   "title"=>"近期动向",
   "published"=>"2012-12-07 11:32:04",
   "content"=>
    "打扰各位,近期2场演出后我们将休整一段时间,开始专辑的准备和录制工作!\r\n\r\n2场演出分别是\r\n12.21 月亮钥匙 W 刺猬\r\n12.28 光圈 地下丝绒45周年致敬演出  "receiver"=>
    {"avatar"=>"http://img3.douban.com/icon/u2217855-34.jpg",
     "alt"=>"http://www.douban.com/people/xiaosong/",
     "id"=>"2217855",
     "name"=>"小松其实还没有",
     "uid"=>"xiaosong"},
   "id"=>"283060020"},
  {"status"=>"R",………………………………
 
  # 发送一条广播
  client.shuo("呵呵后")
  
  => {"category"=>nil,
   "reshared_count"=>0,
   "attachments"=>[],
   "entities"=>{"user_mentions"=>[], "topics"=>[], "urls"=>[]},
   "muted"=>false,
   "text"=>"呵呵后",
   "created_at"=>"2012-12-07 14:58:49",
   "title"=>"说:",
   "can_reply"=>1,
   "liked"=>false,
   "source"=>{"href"=>"", "title"=>"douReminder"},
   "like_count"=>0,
   "comments_count"=>0,
   "user"=>
    {"description"=>"",
     "small_avatar"=>"http://img3.douban.com/icon/u2217855-34.jpg",
     "uid"=>"xiaosong",
     "type"=>"user",
     "id"=>"2217855",
     "screen_name"=>"小松其实还没有"},
   "is_follow"=>false,
   "has_photo"=>true,
   "type"=>"text",
   "id"=>1059068526}
   

更多请查看文档 或阅读 源码

TODOs

  • Test, test, test……
  • 文档

This project a fork of instagram-ruby-gem, see LICENSE for details.

FAQs

Package last updated on 05 Oct 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc