无法通过omniauth-instagram进行身份验证,缺少client_id

时间:2016-02-25 04:27:59

标签: rubygems instagram omniauth

我在Twitter和Instagram上使用OmniAuth进行身份验证。 Twitter运作良好。

当我使用/ auth / instagram请求启动身份验证过程时,OmniAuth不会在授权标头中包含client_id。

我已将OmniAuth初始化为:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, ENV.fetch('TWITTER_CONSUMER_KEY'), ENV.fetch('TWITTER_CONSUMER_SECRET')
  provider :instagram, ENV.fetch('INSTAGRAM_CLIENT_ID'), ENV.fetch('INSTAGRAM_CLIENT_SECRET')
end

当我发送/ auth / instagram请求时,它会返回:

{"code": 400, "error_type": "OAuthException", 
 "error_message": "You must include a valid client_id, response_type, and redirect_uri parameters"}

并显示没有我的client_id的请求uri:

https://www.instagram.com/oauth/authorize?client_id=&redirect_uri=http://demo.herokuapp.com/auth/instagram/callback&response_type=code&scope=basic&state=952ced9482ccf34faf3e09cffd40f59548f3c5a539499723

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的z-index变量可能未在加载初始化程序后及时加载。尝试用实际的字符串替换它们,看看是否有效。不要把它交给公共回购......相信我,如果你这样做就很烦人。

我是dotenv的粉丝。我使用ENV版本在初始化程序中加载ENV变量。

Gemfile中的

rails-now

参考如:gem 'dotenv-rails', :require => 'dotenv/rails-now'