Rails 新浪围脖开发问题,怎么向 https 提交数据?

heimirror · 2013年09月18日 · 最后由 heimirror 回复于 2013年09月30日 · 3356 次阅读

RT 这两天做新浪微博开发,研究了半天 API,终于知道用 OAuth2 获取授权,然后用户就可以直接用新浪围脖账号登陆到我们的网站了,现在问题是,OAuth2 的 API 都是安全连接,提交数据不成功啊 比如这个 API:http://open.weibo.com/wiki/OAuth2/access_token ----------------------------------------------------------------更新 2013-9-18 17:33 忘了说了我的环境:ruby1.8.7+rails2.3.8 ----------------------------------------------------------------更新 2013-9-30 09:33 终于找到问题了,不是程序问题,一开始写的代码是没有问题的,是不了解新浪微博的开发流程没有在新浪微博的应用里面添加测试账户,只有添加测试账户后才允许该账户里面 APP 调用微博的 API 附测试代码:

require 'net/https'
require 'uri'

url = 'https://api.weibo.com/2/statuses/update.json'
uri = URI.parse url
args = { :uid=>uid, :access_token=>access_token,:status=>'test post weibo'}

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

req = Net::HTTP::Post.new(uri.request_uri)
req.set_form_data(args)

response = http.request(req)

#<Net::HTTPOK 200 OK readbody=true>

已解决

有没有人帮帮忙阿

#3 楼 @tumayun omniauth-weibo-oauth2 装不上,难道是不支持 ruby1.8.7 吗?

你的环境稍显老了一些

#5 楼 @woaigithub 公司的项目,版本太旧已经没办法升级了

require "net/https"
require "uri"

uri = URI.parse('https://api.weibo.com/oauth2/access_token')
Net::HTTP.post_form(uri,  {"client_id" => "", "client_secret" => "", "grant_type" => ""})

之前有写一个获取其他借口的,供参考:

url = 'https://api.weibo.com/2/statuses/user_timeline.json'
uri = URI.parse url
args = { uid: self.uid, access_token: self.token }
uri.query = URI.encode_www_form(args)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
body = JSON.parse response.body

感谢以上同学提供的帮助😄

需要 登录 后方可回复, 如果你还没有账号请 注册新账号