Ruby 使用Sinatra捕获标签后的URL参数
我正在尝试使用Sinatra从以下URL捕获URL参数:Ruby 使用Sinatra捕获标签后的URL参数,ruby,sinatra,url-parameters,Ruby,Sinatra,Url Parameters,我正在尝试使用Sinatra从以下URL捕获URL参数:http://localhost:4567/token#access_token=7nuf5lgupiya8fd6rz4yzkzvwwo2ria&scope=user_read 我尝试使用两个代码块来执行此操作: get '/token' do puts params['access_token'] end 及 及 然而,这些都不起作用。在第一个块中我得到一个空字符串,在第二个块中我得到字符串“token”,在第三个块中我得到“S
http://localhost:4567/token#access_token=7nuf5lgupiya8fd6rz4yzkzvwwo2ria&scope=user_read
我尝试使用两个代码块来执行此操作:
get '/token' do
puts params['access_token']
end
及
及
然而,这些都不起作用。在第一个块中我得到一个空字符串,在第二个块中我得到字符串“token”
,在第三个块中我得到“Sinatra不知道这首小曲”
本例中合适的解决方案是什么?您编写的url正确吗?我想应该是这样
http://localhost:4567/token?access_token=7nuf5lgupiya8fd6rz4yzkzvwwo2ria&scope=user_read
在
/token
之后使用?
而不是
。通过该更改,您应该能够访问params
hash中的所有查询参数。Yep URL是正确的。我正在用Twitch.tv进行身份验证,我将重定向URI设置为Hm是的,我在Twitch api文档中看到了这种格式。奇怪的这不是发送查询参数的标准方式。Lemme深入挖掘twitch API文档:“请注意,访问令牌位于URL片段中,而不是查询字符串中,因此它不会显示在对服务器的HTTP请求中。可以使用document.location.hash从JavaScript访问URL片段。”看起来您需要编写一些JavaScript:)啊,好的,很有趣。因此,看起来我必须使用授权代码流才能与服务器进行调用。
get '/:token' do |token|
puts token
end
get '/token#:token' do |token|
puts token
end