Ruby 淘宝开放平台基于 OAuth2.0 的登录验证授权 Net::HTTPBadResponse

yeafee · November 20, 2012 · Last by cxh116 replied at November 20, 2012 · 10794 hits

基于 OAuth2.0 的登录验证授权方式介绍:http://open.taobao.com/doc/detail.htm?id=118; (1) 通过用户授权获取授权码 Code; (获取授权码 :https://oauth.taobao.com/authorize ) (2) 用上一步获取的 Code 和应用密钥(AppSecret)通过 Https Post 方式换取 Token。 (获取访问令牌: https://oauth.taobao.com/token ) 沙箱环境 访问 https://oauth.tbsandbox.com/authorize

我是在沙箱环境下,已经获取授权码,第二步报错了,

params={"client_id"=>"appid", "client_secret"=>"sandboxsecret", "grant_type"=>"authorization_code", "code"=>授权码, "redirect_uri"=>"http://127.0.0.1:3000"} url= URI.parse('https://oauth.tbsandbox.com/authorize') response = Net::HTTP.post_form(url,params)

错误如下, Net::HTTPBadResponse in HomeController#index wrong status line: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">"

了解的给指个路,谢谢;

你不会是自己实现 oauth2 通信吧?那得仔细看看 oauth2 的规范才行,request header 貌似是有约束的

可以试试用 oauth2 这个库

另外你可以参考 github 的现成实现 https://github.com/ballantyne/omniauth-taobao

You need to Sign in before reply, if you don't have an account, please Sign up first.