我正在尝试通过oauth2连接到mapmyfitness api。但是,每当我尝试连接时,我都会收到错误。
这是配置文件..
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :mapmyfitness, ENV['wn3ghaaqgbpnztsupsyfvswd3gtprvm9'], ENV['fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ']
end
使用它应该允许我至少登录mapmyfitness,但每当我尝试连接(它重定向到https://www.mapmyfitness.com/v7.1/oauth2/authorize/confirm)...我在浏览器中收到此错误“未经授权的客户端试图访问您的资源“。
我不知道如何解决这个问题,感谢任何帮助!
答案 0 :(得分:2)
你有两个问题
使用机密的omniauth初始化程序示例
Rails.application.config.middleware.use OmniAuth::Builder do
provider :mapmyfitness, Rails.application.secrets.mapmyfitness_provider_key, Rails.application.secrets.mapmyfitness_provider_secret
end
然后你的secrets.yml看起来像:
development:
mapmyfitness_provider_key: wn3ghaaqgbpnztsupsyfvswd3gtprvm9
mapmyfitness_provider_secret: fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ
显然,您将拥有不同的生产线。还要记住,既然您的密钥在世界各地,您可以考虑申请一组新的凭证:)
同样重要的是要记住不要将你的config / secrets.yml文件检查到版本控制中 - 而是通过部署复制它。
可以尝试使用lvh.me而不是mapmyfitness的localhost passthrough。
将您在mapmyfitness注册的回调网址更改为
http://lvh.me:3000/auth/mapmyfitness/callback
然后在浏览器中访问http://lvh.me:3000
显然,您需要确保使用与rails服务器运行相同端口的任何端口。