ruby - Facebook iframe 中的 Sinatra

标签 ruby facebook iframe sinatra

我有一个页面正在运行,(https://blooming-wind-8528.herokuapp.com/) 使用以下代码:

App.rb 包含:

require 'rubygems'
require 'sinatra'
require 'open-uri'
require 'json'

#show page
get "/" do
  profile = open("https://graph.facebook.com/me?access_token=#full_access_code_here_removed_for_stackoverflow#").read
  profile = JSON.parse(profile)
  @language = profile['locale'][0..1]

  erb :nofan
end

#redirect for facebook
post "/" do
  redirect "/"
end

views/nofan.erb 包含:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Stestie</title>
    <meta property="og:title" content="No Fan"/>
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="https://blooming-wind-8528.herokuapp.com/"/>
    <meta property="og:image" content="https://blooming-wind-8528.herokuapp.com/images/marker_s.png"/>
    <meta property="og:site_name" content="NO fan"/>
    <meta property="fb:app_id" content="293597294002599" />
    </head>

  <body>
        <p>App running in language: <%= @language %></p>
    </body>
</html>

现在,奇怪的是:它在浏览器中完美加载。但是,在 Facebook 上它不起作用。我得到一个空白屏幕。 但是,当我调用错误代码(例如:将访问 token 更改为错误的内容)时,我在 iframe 中得到了一个完整的 sinatra 错误页面...

有人知道我做错了什么吗?

谢谢!

最佳答案

Sinatra 试图避免点击劫持攻击。

添加这一行:

set :protection, :except => :frame_options

或这一行:

disable :protection

给你申请。

关于ruby - Facebook iframe 中的 Sinatra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847536/

相关文章:

ruby - 为什么在 Celluloid::IO 中调用 sleep 时进程永远阻塞

ruby - 为什么 Ruby 会给出一个奇怪的值?

php - Facebook 注册和登录 Slim Framework PHP API

javascript - 从 HTML IFRAME 调用 JS 函数(均为 Web 资源)

javascript - Chrome 扩展程序 "all_frames"无效

javascript - Safari 8 第 3 方 cookie 未发送

ruby-on-rails - 如何使用 <div class ="field_with_error"> 突出显示 form_tag 中的错误字段

ruby-on-rails - 如何在服务器日志中查看有关对象的详细信息?

php - Facebook 连接对话框弹出窗口

css - Facebook 连接覆盖层被 Flash 覆盖