2013-08-21 3 views
1

Я создал приложение FB, размещенное на Heroku. Приложение написано на Ruby.Facebook canvas app не загружается, скребок показывает правильный документ

  1. Приложение предназначено для загрузки правильно в facebook iframe.
  2. Теперь, если я открою приложение через app.facebook.com/app_namespace, появится пустой экран. Когда я включил трассировку исключения, теперь он показывает, как будто access_token для объекта graph koala равен нулю.
  3. Если я открываю URL холста, например. «прямой» URL-адрес работает нормально, но я должен сначала называть прямую автохронизацию на facebook через «/ auth/facebook».
  4. В iframe теперь отображается koala «Unsupported get method», но через отладку очевидно, что access_token, полученный из графика, равен нулю.
  5. Поведение одинаково для созданных пользователей тестов, а также для пользователей разработчиков.

Уже пробовал:

  1. Я пытался отладить URL Canvas через интернет-FB отладчик, и скребок, кажется, чтобы увидеть правильный HTML.
  2. Попробуйте повторно авторизовать приложение, но безрезультатно.

ответ

2

По умолчанию Sinatra uses rack-protection to set the X-Frame_Options header. Похоже, это то, что вызывает проблемы.

Вы можете отключить его с этой линией в приложении:

set :protection, :except => :frame_options 
+0

Мэтт, спасибо. Это может быть проблемой с access_token. Теперь «автономная» версия работает хорошо после того, как я назову «/auth/facebook», а затем я могу ее использовать. Для версии iframe это не помогает. Кроме того, я включил show_exceptions, и проблема в том, что внутри iFrame access_token недействителен? Я смущен. :) – emirc

+0

Мэтт, я приму ответ, это помогло. В чем синтаксис: кроме нескольких значений, например. : frame_options и: http_origin? – emirc

+1

@emirc использовать массив: 'set: protection,: except => [: frame_options,: http_origin]' http://www.sinatrarb.com/intro.html#Configuring%20attack%20protection – matt

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