FBML запросы в Facebook не отправляют MIME-тип? - PullRequest
0 голосов
/ 01 октября 2009

Я бы хотел ответить на различные форматы в моем приложении Rails:

respond_to do |format|
   logger.info "in main format block, request.format.fbml? = #{request.format.fbml?}"
   format.html # index.html.erb
   format.fbml # index.fbml.erb
end

Это просто. Если facebook запрашивает страницу, верните файл .fbml.erb, в противном случае верните файл .html.erb.

Мое приложение знает, что нужно отправить через main.fbml.erb из каталога раскладок вместо main.html.erb, но оно никогда не отправляет app / views / main / index.fbml.erb в ответ на блок, если я отвечаю, как показано выше в действии index моего основного контроллера.

Кто-нибудь знает, как легко это сделать?

Я использую гем "facebooker", который автоматически устанавливает формат fbml.

EDIT Вывод из моего журнала Rails:

in main format block, request.format.fbml? = true
Rendering template within layouts/main
Rendering main/index

Ответы [ 3 ]

2 голосов
/ 01 октября 2009

Facebooker должен сделать это автоматически. Добавляет a set_facebook_request_format до фильтрации на контроллеры. Если вы предпочитаете не добавлять весь фейсбукер в свое приложение, его функциональность выглядит относительно легко.

0 голосов
/ 12 октября 2009

Я только что столкнулся с этим после долгого перерыва в работе с Facebooker и написанием приложений для Facebook. Оказывается, в настройках моего нового приложения на Facebook метод рендеринга был установлен на IFrame вместо FBML. Имеет смысл, что Facebooker не будет отправлять fbml в iframe, потому что браузер не знает, как отображать и теги fbml.

0 голосов
/ 01 октября 2009

В зависимости от версии Facebooker, которую вы используете, может потребоваться явно добавить следующую строку в ваш /config/initializers/mime_types.rb

Mime::Type.register_alias "text/html", :fbml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...