Ruby 使用Sinatra捕获标签后的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

我正在尝试使用Sinatra从以下URL捕获URL参数:
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