`
zetorli
  • 浏览: 26252 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

人人api(ruby)

    博客分类:
  • ruby
 
阅读更多
#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中英文api

    "ruby中英文api"资料集可能包含了对这些内容的解释,无论是对于初学者还是有经验的开发者,都是宝贵的参考资料。 "ruby中文文档.chm"可能是Ruby的中文版官方文档,这对于中文环境下的学习者来说非常方便。它可能...

    Ruby API Docs帮助文档

    Ruby API Docs是针对Ruby编程语言的一份详尽的官方文档,它为开发者提供了关于Ruby标准库和核心类库的详细信息。这份文档包含了1.8.7和1.9.2两个版本,这两个版本在Ruby的发展历程中具有重要的地位。Ruby API Docs...

    ruby api html

    Ruby API 文档是 Ruby 库、框架或工具的接口规范,它详细地解释了各种类、方法、模块和函数的使用方式,帮助开发者高效地在项目中集成和利用这些功能。 Ruby 1.8.6 是 Ruby 的一个旧版本,发布于2009年。在那个时期...

    Sketch Up Ruby API by Sugar.pdf

    Sketch Up Ruby API by Sugar Sketch Up Ruby API by Sugar 是一份关于 SketchUp 的 Ruby API 文档,用于帮助开发者使用 Ruby 语言开发 SketchUp 插件和应用程序。该文档提供了详细的 API 参考手册,涵盖了 ...

    ruby API资料

    Ruby API资料是一组重要的开发资源,它为使用Ruby编程语言的开发者提供了详尽的文档和接口信息。在本文中,我们将深入探讨Ruby API的核心概念、关键特性以及如何利用这些资料来提升开发效率。 Ruby是一种面向对象的...

    Ruby-JSONAPIResources提供了一个框架来开发一个符合JSONAPI规范的服务器

    Ruby-JSONAPIResources 是一个基于 Ruby 的框架,专门用于构建遵循 JSON API 规范的服务器端应用。JSON API 是一种标准化的数据交换格式,它旨在提高客户端与服务器之间的数据交互效率和可读性,广泛应用于RESTful ...

    jira-ruby, 用于 JIRA REST API的ruby gem.zip

    jira-ruby, 用于 JIRA REST API的ruby gem gem API 这里 gem 提供对 Atlassian REST API的访问。松弛加入我们的Slack 你可以在这里找到我们。示例用法require 'rubygems'require 'jira-ruby

    Ruby API 帮助文档.zip

    Ruby API 帮助文档是开发者们在使用Ruby编程语言进行软件开发时的重要参考资料。它详细阐述了Ruby的标准库、类、方法以及其他关键组件的工作原理和使用方式,为程序员提供了全面且深入的理解,以提高开发效率和代码...

    ruby on rails api

    标题“ruby on rails api”表明我们将讨论的是Rails框架的API(Application Programming Interface),这是一系列预先定义好的函数、类和模块,允许开发者通过调用来实现特定的功能,无需从头编写所有代码。...

    Ruby-FastJSONAPI一个用于Ruby对象的快速JSONAPI的序列化器

    **Ruby FastJSONAPI:高效实现JSON:API序列化的利器** Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大...

    ruby 最新 安装文件 与 API

    在本资源中,我们关注的是Ruby的最新版本安装文件和API相关的内容。 标题中的"ruby 最新 安装文件"指的是Ruby的最新版本安装程序,这通常是针对特定操作系统的,比如在描述中提到的"ruby window 版本安装文件",是...

    curso_tour_of_heroes_api:Ruby on Rails作为API课程-源码

    英雄之旅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 API for sketchup (狂刀整理版).CHM

    是 sketchup(草图大师)的ruby接口,提供su的对象、方法、属性。 是本人从su帮助的网上链接下载整理成chm的。

    Ruby on Rails4 api.chm

    Ruby on Rails4 api.chm ruby on rails 4 最新api chm版本,方便大家阅览!

    javascript apis ruby api

    标题中的"javascript apis ruby api"表明本主题涵盖了JavaScript API和Ruby API两个主要方面。JavaScript API是用于在浏览器环境中操作和扩展网页功能的接口,而Ruby API则是Ruby编程语言的接口,允许开发者调用内置...

    ruby的API文档,有需要同事请下载

    Ruby的API(应用程序接口)文档是开发者理解和使用Ruby语言的重要资源,它详细介绍了Ruby的标准库、类、模块、方法等核心组件。Ruby 1.9.3是其历史上的一个重要版本,此版本引入了许多改进和新特性。 1. **Ruby的...

    rubyapi:Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。

    Ruby API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...

    Ruby-使用百度地图API进行地址定位坐标坐标定位地址名称定位地址

    在Ruby开发中,有时我们需要将地址转换为经纬度坐标,或者根据坐标反向查询地址,这时可以利用百度地图API来实现。本篇文章将详细介绍如何在Ruby中使用百度地图API进行地址定位、坐标定位以及名称定位。 首先,我们...

    ruby的api的学习

    Ruby API的学习主要关注的是如何利用Ruby编程语言与各种应用程序接口进行交互。Ruby是一种面向对象的、动态类型的编程语言,它的API(Application Programming Interface)提供了丰富的功能,使得开发者能够轻松地...

Global site tag (gtag.js) - Google Analytics