#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
#on user return grab the code from the query string
dailybooth.oauth_token(params[:code])
#make request to the api
pp dailybooth.get('/users.json')
问题是,它会不断重定向,因为它甚至没有检查是否设置了oauth_token,所以我做了这个;
unless dailybooth.oauth_token(params[:code])
#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
#on user return grab the code from the query string
dailybooth.oauth_token(params[:code])
end
#make request to the api
pp dailybooth.get('/users.json')
现在,这将我发送到dailybooth授权页面,用户授权,然后被发送到我的页面,我获得了他们的帐户访问权限(返回了用户信息的数组),如果你刷新了令牌,那就是不存在了,用户不得不重新授权。
所以我尝试的是将oauth_token存储在会话中,
if session[:oauth_code] #If session is set
dailybooth.oauth_token(session[:oauth_code]) #sign in using cookie
else
if params[:code]
@oauth_token_ = params[:code]
session[:oauth_code] = @oauth_token_
else
#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
end
end
#make request to the api
@info = dailybooth.get('/users.json')
if @info['error']
if @info['error']['error_code']
if @info['error']['error_code'] == 302 #if getting invalid token, request another token.
session[:oauth_code] = nil
#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
end
end
end
我仍然得到同样的东西,当我第一次访问我的网站时,我被重定向到授权页面,当局,然后我可以访问该帐户,但当我尝试回到索引,它说oauth_token无效。有什么帮助吗?
答案 0 :(得分:0)
我说实话,我不是百分百肯定(并且DailyBooth的API文档是......缺少,至少可以说),但我相信你使用“令牌”(你正在获得的那个)从params[:code]
并存储在@oauth_token_
中)以获取访问令牌,然后存储访问令牌(例如,存储结果表单dailybooth.oauth_token(session[:oauth_code])
,或者至少存储其中的一部分,如果它是一个对象/数组)。
unless session[:oauth_code] #unless the session is set
if params[:code]
session[:oauth_code] = dailybooth.oauth_token(params[:code])
else
#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
end
end
#make request to the api
@info = dailybooth.get('/users.json')
if @info['error']
if @info['error']['error_code']
if @info['error']['error_code'] == 302 #if getting invalid token, request another token.
session[:oauth_code] = nil
#first redirect the user to the authorize_url
redirect_to dailybooth.authorize_url
end
end
end
我希望这能指出你正确的方向。