omn​​iauth gowalla策略错误:String与Bignum的比较失败

时间:2011-09-25 23:16:05

标签: ruby-on-rails ruby oauth omniauth

据我所知,gowalla auth代码响应包含expires_atexpires_in但是 expires_at不是有效的日期字符串,因此在比较日期时会抛出错误 任何破解omniauth或gowalla策略的想法都会非常受欢迎!!!

rails 3.0.9 红宝石1.9.2

comparison of String with Bignum failed
oauth2 (0.5.0) lib/oauth2/access_token.rb:72:in `<'
oauth2 (0.5.0) lib/oauth2/access_token.rb:72:in `expired?'
oa-oauth (0.3.0) lib/omniauth/strategies/oauth2.rb:67:in `callback_phase'


{
"scope":"read",
"expires_at":"Sun, 09 Oct 2011 12:47:37 -0000",
"username":"altuure",
"expires_in":1172767,
"refresh_token":"XX",
"access_token":"XX" 
}

2 个答案:

答案 0 :(得分:0)

为什么不尽你所能。 expires_in似乎是一个间隔,所以你可以这样做:

expires_at = Time.now + json["expires_in"].to_i

也就是说,expires_at的日期字符串肯定在1.9.2-p290中解析(使用DateTime.parse(str))。如果您需要根据给定格式解析日期/时间字符串,则始终为DateTime.strptime

答案 1 :(得分:0)

抱歉延迟但是我将补丁提交给github你可以在这里找到详细信息http://github.com/intridea/omniauth/issues/485 -