Вы можете проверить это с помощью:
того, что 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, поскольку это не будет полное приложение (просто вкладка) и не потребует каких-либо дополнительных разрешений от пользователей. Любые рекомендации относительно моего метода обнаружения поклонников также приветствуются.