更新2011/05/01: 我后来仔细阅读了FourSquare的API文档,发现它说:
(请注意,请求参数不是JSON,它们是标准的HTTP密钥和值。)所有身份验证都是通过OAuth2进行的,这意味着所有请求都必须是https。
这可能是我的开发机器中没有SSL连接的问题吗?
大家好!我正在尝试通过Omniauth连接FourSquare,我按照下面的Railscast完成,并将提供者更改为foursquare。但返回始终是“invalid_credentials”。我google了一下,发现在GitHub上有关于此的讨论(下面的链接),但似乎还没有结论。 任何人都知道出了什么问题?
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, "XXXXXXX","XXXXXXX"
provider :foursquare, 'XXXXXXX',
'XXXXXXX'
end
答案 0 :(得分:1)
尝试修改您的提供程序初始值设定项以指向系统的证书路径(Ubuntu上的“/ etc / ssl / certs”)
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, "XXXXXXX","XXXXXXX"
provider :foursquare, 'XXXXXXX', {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}}
end
答案 1 :(得分:1)
我有一个宝石,可以用于四边形的omniauth。
答案 2 :(得分:0)
您的配置看起来很好,但您可能不想公开共享您的令牌/密钥。
您在注册foursquare oauth consumer时使用的回调网址是否与您正在测试的网址相匹配?如果您在注册您的使用者时使用http://www.foo.com/auth/foursquare/callback,但正在您的开发环境(http:// localhost:3000 / ..)上进行测试,您将看到auth / failure错误。
答案 3 :(得分:0)
这就是我所做的:OmniAuth Invalid Response Error