#encoding: utf-8
require "net/http"
require "net/https"
require "json"
require "oauth2"
class RenRenController < ApplicationController
def client
#得到Authorization Code
ac = OAuth2::Client.new(api_key, api_secret, "/oauth/authorize","/oauth/token",
:site => {:url=>'https://graph.renren.com', :response_type=>'code'},
:access_token_url => 'https://graph.renren.com/oauth/token')
end
def login
# scope赋予不同的权限,比如发表文章就需要特定权限,这个要去api去查看
redirect_to client.auth_code.authorize_url(
:scope=>"publish_feed publish_blog",
:redirect_uri => "项目的url/loginnext",
:response_type=>'code')
end
def loginnext
#得到Access Token
access_token = client.auth_code.get_token(params[:code], {:redirect_uri =>"项目的url/loginnext"})
session[:renren_access_token]=access_token.token
#获得Session Key,为调用renren api做准备
get_uri=URI.parse(URI.encode("http://graph.renren.com/renren_api/session_key?oauth_token=#{session[:renren_access_token]}"))
res=JSON Net::HTTP.get(get_uri)
session[:renren_session_key]= res["renren_token"]["session_key"]
session[:renren_expires_in]=res["renren_token"]["expires_in"]
session[:renren_refresh_token]=res["renren_token"]["refresh_token"]
redirect_to "/ren_ren/add_blog"
end
def add_blog
session_key=session[:renren_session_key]
str="api_key=#{api_key}"
str<<"content=testbdesc"
str<<"format=JSON"
str<<"method=blog.addBlog"
str<<"session_key=#{session_key}"
str<<"title=testb"
str<<"v=1.0"
str<<"#{api_secret}"
#创建sig, 注意顺序, 这些参数必须是按照首字母英文a-z的顺序
sig=Digest::MD5.hexdigest(str)
query={:api_key=>api_key,
:content=>'testbdesc',
:format=>'JSON',
:method=>'blog.addBlog',
:session_key=>session_key,
:title=>'testb',
:v=>'1.0',
:sig=>sig
}
@ab=JSON Net::HTTP.post_form(URI.parse(URI.encode("http://api.renren.com/restserver.do")),query).body
end
def user
session_key=session[:renren_session_key]
str="api_key=#{api_key}"
str<<"call_id=#{Time.now.to_i}"
str<<"format=JSON"
str<<"method=users.getInfo"
str<<"session_key=#{session_key}"
str<<"v=1.0"
str<<"#{api_secret}"
sig=Digest::MD5.hexdigest(str) #create sig
query={:api_key=>api_key,
:call_id=>Time.now.to_i,
:format=>'JSON',
:method=>'users.getInfo',
:session_key=>session_key,
:v=>'1.0',
:sig=>sig
}
@user=JSON Net::HTTP.post_form(URI.parse(URI.encode("http://api.renren.com/restserver.do")),query).body
end
#api_key
def api_key
'api_key'
end
#secret_id
def api_secret
'secret'
end
end
很多东西要去查看renren的api,这里用到了几个gem, json和oauth2,别忘记引入http和https
分享到:
相关推荐
Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档
"ruby中英文api"资料集可能包含了对这些内容的解释,无论是对于初学者还是有经验的开发者,都是宝贵的参考资料。 "ruby中文文档.chm"可能是Ruby的中文版官方文档,这对于中文环境下的学习者来说非常方便。它可能...
Ruby API Docs是针对Ruby编程语言的一份详尽的官方文档,它为开发者提供了关于Ruby标准库和核心类库的详细信息。这份文档包含了1.8.7和1.9.2两个版本,这两个版本在Ruby的发展历程中具有重要的地位。Ruby API Docs...
Ruby API 文档是 Ruby 库、框架或工具的接口规范,它详细地解释了各种类、方法、模块和函数的使用方式,帮助开发者高效地在项目中集成和利用这些功能。 Ruby 1.8.6 是 Ruby 的一个旧版本,发布于2009年。在那个时期...
Sketch Up Ruby API by Sugar Sketch Up Ruby API by Sugar 是一份关于 SketchUp 的 Ruby API 文档,用于帮助开发者使用 Ruby 语言开发 SketchUp 插件和应用程序。该文档提供了详细的 API 参考手册,涵盖了 ...
Ruby API资料是一组重要的开发资源,它为使用Ruby编程语言的开发者提供了详尽的文档和接口信息。在本文中,我们将深入探讨Ruby API的核心概念、关键特性以及如何利用这些资料来提升开发效率。 Ruby是一种面向对象的...
Ruby-JSONAPIResources 是一个基于 Ruby 的框架,专门用于构建遵循 JSON API 规范的服务器端应用。JSON API 是一种标准化的数据交换格式,它旨在提高客户端与服务器之间的数据交互效率和可读性,广泛应用于RESTful ...
jira-ruby, 用于 JIRA REST API的ruby gem gem API 这里 gem 提供对 Atlassian REST API的访问。松弛加入我们的Slack 你可以在这里找到我们。示例用法require 'rubygems'require 'jira-ruby
Ruby API 帮助文档是开发者们在使用Ruby编程语言进行软件开发时的重要参考资料。它详细阐述了Ruby的标准库、类、方法以及其他关键组件的工作原理和使用方式,为程序员提供了全面且深入的理解,以提高开发效率和代码...
标题“ruby on rails api”表明我们将讨论的是Rails框架的API(Application Programming Interface),这是一系列预先定义好的函数、类和模块,允许开发者通过调用来实现特定的功能,无需从头编写所有代码。...
**Ruby FastJSONAPI:高效实现JSON:API序列化的利器** Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大...
在本资源中,我们关注的是Ruby的最新版本安装文件和API相关的内容。 标题中的"ruby 最新 安装文件"指的是Ruby的最新版本安装程序,这通常是针对特定操作系统的,比如在描述中提到的"ruby window 版本安装文件",是...
英雄之旅API Ruby on Rails 6课程作为创建Heroes CRUD的API。 该存储库是YouTube 的。 Ruby版本2.7.2 Rails版本6.1.x 数据库SQLite3(dev)/ PostgreSQL(产品)运行项目的初始设置# clone the projectgit clone ...
是 sketchup(草图大师)的ruby接口,提供su的对象、方法、属性。 是本人从su帮助的网上链接下载整理成chm的。
Ruby on Rails4 api.chm ruby on rails 4 最新api chm版本,方便大家阅览!
标题中的"javascript apis ruby api"表明本主题涵盖了JavaScript API和Ruby API两个主要方面。JavaScript API是用于在浏览器环境中操作和扩展网页功能的接口,而Ruby API则是Ruby编程语言的接口,允许开发者调用内置...
Ruby的API(应用程序接口)文档是开发者理解和使用Ruby语言的重要资源,它详细介绍了Ruby的标准库、类、模块、方法等核心组件。Ruby 1.9.3是其历史上的一个重要版本,此版本引入了许多改进和新特性。 1. **Ruby的...
Ruby API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...
在Ruby开发中,有时我们需要将地址转换为经纬度坐标,或者根据坐标反向查询地址,这时可以利用百度地图API来实现。本篇文章将详细介绍如何在Ruby中使用百度地图API进行地址定位、坐标定位以及名称定位。 首先,我们...
Ruby API的学习主要关注的是如何利用Ruby编程语言与各种应用程序接口进行交互。Ruby是一种面向对象的、动态类型的编程语言,它的API(Application Programming Interface)提供了丰富的功能,使得开发者能够轻松地...