Я пытаюсь выяснить, нравится ли пользователю страница нашего бренда.Исходя из этого, мы хотим показать либо кнопку «Мне нравится», либо текст с благодарностью.
Я работаю с приложением sinatra, размещенным на heroku.
Я попробовал код изэта тема: Расшифровка подписанного запроса Facebook в Ruby / Sinatra
Однако, кажется, что он не захватывает подписанный запрос, и я не могу понять, почему.
У меня есть следующие методы:
get "/tab" do
@encoded_request = params[:signed_request]
@json_request = decode_data(@encoded_request)
@signed_request = Crack::JSON.parse(@json_request)
erb :index
end
# used by Canvas apps - redirect the POST to be a regular GET
post "/tab" do
@encoded_request = params[:signed_request]
@json_request = decode_data(@encoded_request)
@signed_request = Crack::JSON.parse(@json_request)
redirect '/tab'
end
У меня также есть вспомогательные сообщения из этой цепочки, поскольку они, как мне кажется, имеют смысл:
helpers do
def base64_url_decode(payload)
encoded_str = payload.gsub('-','+').gsub('_','/')
encoded_str += '=' while !(encoded_str.size % 4).zero?
Base64.decode64(encoded_str)
end
def decode_data(signed_request)
payload = signed_request.split('.')
data = base64_url_decode(payload)
end
end
Однакокогда я просто делаю
@encoded_request = params[:signed_request]
и зачитываю это, на мой взгляд, с помощью:
<%= @encoded_request %>
я ничего не получаю.
Не должно ли это вернуться вхоть что то?Кажется, мое приложение зависает, потому что ничего не нужно декодировать.
Кажется, я не могу найти много информации об этом в интернете, поэтому я был бы рад, если бы кто-нибудь смог мне помочь.
Есть ли лучшие способы узнать, нравится ли пользователю наша страница?Или это путь, и я просто упускаю из виду что-то очевидное?
Спасибо!