
Security News
Astral Launches pyx: A Python-Native Package Registry
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Simple Ruby wrapper for Douban API V2
这个项目仍在开发中,缺少文档和测试,欢迎贡献。
gem install douban_api
完整的应用请到 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
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}
This project a fork of instagram-ruby-gem, see LICENSE for details.
FAQs
Unknown package
We found that douban_api demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.
Security News
The latest Opengrep releases add Apex scanning, precision rule tuning, and performance gains for open source static code analysis.