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

yeafee · 2012年11月20日 · 最后由 cxh116 回复于 2012年11月20日 · 10794 次阅读

基于 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

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