Вы можете проверить это с помощью:

того, что Facebook не поддерживает новый FBML, я ищу новый способ создания вкладки «раскрытия» (вкладка страницы, которая показывает одну версию для фанатов, а другую - для сторонников). Facebook добавил данные в подписанный запрос:

Когда пользователь выбирает ваше приложение в левом меню, оно получит параметр signature_request с одним дополнительным параметром, страницей, массивом JSON, который содержит «идентификатор» страницы Facebook, на которой расположена ваша вкладка, логическое значение (' «понравился»), указывающий, понравилась ли пользователю страница, и логическое значение («admin»), указывающее, является ли пользователь «администратором» страницы вместе с массивом информации о пользователе.

Я умею хорошо читать подписанный_просмотр, но затем мне нужно обработать его с помощью декодирования base64url, чтобы получить правильный JSON. Кроме того, я обнаружил в своем исследовании, что JSON неправильно отформатирован для Ruby, поэтому его необходимо изменить перед декодированием. Вот текущий код (сейчас я просто печатаю подписанный запрос в index.erb):

helpers do
  def base64_url_decode str
    encoded_str = str.gsub('-','+').gsub('_','/')
    encoded_str += '=' while !(encoded_str.size % 4).zero?
    Base64.decode64(encoded_str)
  end

  def decode_data str
    encoded_sig, payload = str.split('.')
    data = ActiveSupport::JSON.decode base64_url_decode(payload)
  end
end

get '/' do
  signed_request = params[:signed_request]
  @signed_request = decode_data(signed_request)
  erb :index
end

Я стараюсь сделать приложение максимально легким и избегать использования полной библиотеки Facebook, поскольку это не будет полное приложение (просто вкладка) и не потребует каких-либо дополнительных разрешений от пользователей. Любые рекомендации относительно моего метода обнаружения поклонников также приветствуются.

Ответы на вопрос(3)

Ваш ответ на вопрос