2013-10-06 3 views
0

Я пытаюсь захватить параметры URL из следующего URL с Синатрой: http://localhost:4567/token#access_token=7nuf5lgupiya8fd6rz4yzkzvwwo2ria&scope=user_readЗахват параметров URL после хэштегом с Синатрой

Я попытался с помощью пары блоков кода, чтобы сделать это:

get '/token' do 
    puts params['access_token'] 
end 

и

get '/:token' do |token| 
    puts token 
end 

и

get '/token#:token' do |token| 
    puts token 
end 

Однако ни одна из этих работ не работает. В первом блоке я получаю пустую строку, во втором блоке я получаю строку "token", а в третьем блоке я получаю «Синатра не знает эту мелодию».

Каким будет решение appopriate в этом примере?

ответ

2

Этот url вы написали правильно? Я думаю, что это должно быть

http://localhost:4567/token?access_token=7nuf5lgupiya8fd6rz4yzkzvwwo2ria&scope=user_read

С ? вместо того, чтобы # после /token. С этим изменением вы должны иметь доступ ко всем параметрам запроса в хеше params.

+0

Да, правильный URL. Я аутентифицируюсь с помощью Twitch.tv, и я установил URI перенаправления на http: // localhost: 4567 – user2066880

+1

Хм, да, я вижу этот формат в документации twitch api. Weird! Это не стандартный способ отправки параметров запроса. Лемм копать глубже. – rickyrickyrice

+1

Из документации API twitch: «Обратите внимание, что токен доступа находится в фрагменте URL-адреса, а не в строке запроса, поэтому он не будет отображаться в HTTP-запросах на ваш сервер. К URL-фрагментам можно получить доступ с JavaScript с помощью document.location. хэш «. Похоже, вам нужно написать Javascript :) – rickyrickyrice

Смежные вопросы