我正在尝试使用Instagram gem验证用户身份。所以我有一个由Instagram返回code
param的页面,我只需要通过POST请求发送回来。根据gem文档,我需要做类似的事情:
get "/oauth/callback" do
response = Instagram.get_access_token(params[:code], :redirect_uri => CALLBACK_URL)
session[:access_token] = response.access_token
redirect "/feed"
end
所以我有
def authenticate
response = Instagram.get_access_token(params[:code], :redirect_uri => "http://127.0.0.1:3000")
session[:access_token] = response.access_token
redirect "/feed"
end
我正在接受
Completed 500 Internal Server Error in 957ms
Instagram::BadRequest (POST https://api.instagram.com/oauth/access_token/: 400):
app/controllers/instagram_controller.rb:25:in `authenticate'
我尝试根据Instagram api文档制作curl请求,并且它使用相同的参数。
关于client_id,我将这些密钥存储在初始化程序中的instagram.rb中,所以它看起来像
require "instagram"
Instagram.configure do |config|
config.client_id = "123345"
config.client_secret = "123123"
end
CALLBACK_URL = "http://127.0.0.1:3000"
提前多多感谢。
答案 0 :(得分:2)
发现问题。所以,我也在我的应用程序中设计,并且我没有在config.omniauth中放置“redirect_url”。人们在这里讨论https://github.com/Instagram/instagram-ruby-gem/issues/22完全相同的事情。 谢谢你的帮助。