【发布时间】:2011-12-12 10:47:21
【问题描述】:
我使用以下代码启动并运行了一个页面 (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 上它不起作用。我得到一个空白屏幕。 但是,当我调用错误代码(例如:将访问令牌更改为错误的内容)时,我会在 iframe 中得到一个完整的 sinatra 错误页面...
有人知道我做错了什么吗?
谢谢!
【问题讨论】:
-
看起来您需要禁用 X-Frame-Options 标头,看看这个问题:stackoverflow.com/questions/7840613/… 并在我的答案中尝试解决方案。
标签: ruby facebook iframe sinatra