2011-11-15 64 views
0

我是Facebook开发新手。我有一个游戏嵌入在我的服务器的HTML文档中。我能够通过Oauth的授权,一切似乎都在起作用。 现在,我使用Facebook PHP SDK完成所有用户授权和应用程序认证之后,我现在在我的www.myserver.com/index.php中如何开始我的游戏(即,在IFRAME中运行我的HTML文件) 。所以要更清楚一点,最后一块应用验证码是 //如果用户已连接到您的应用,请执行以下操作。 $ signed_request = $ facebook-> getSignedRequest(); //从signed_request令牌获取数据。 //确定应该用于API调用的访问令牌。 $ access_token = $ facebook-> getAccessToken(); 现在在这一点上,我该如何将Facebook重定向到我的html文件!我尝试了 $ appurl =“mygame.html”; echo''; 但是,我得到一个空白页和Internet Explorer给出了消息Facebook应用程序界面问题

此内容不能显示在框架 为帮助保护您进入这个网站的信息的安全性,该内容的发布者并没有允许它被显示在一个框架中。 你可以尝试: 在新窗口中打开此内容

有人可以帮助我!

回答

0

考虑认证的流程。

客户端 - >您的画布页面 - >您的服务器。

现在,你就会知道他们是未经验证的,因为在第2步,你会得到一个空signed_request,它只是包含在这一点上,你的编码,即,“HMACSHA256”

所以,可以返回一个HTML网页,将转发浏览器的OAUTH允许页面。

例如

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en" > 
    <script> 
     window.top.location = 'FacebookOauthURL'; 
    </script> 
</html> 

然后,当他们让你,让你指定登录URL的REDIRECT_URI,Facebook将其转发到该网址。在大多数情况下,这将是画布页重新e..g

https://www.facebook.com/dialog/oauth/?client_id=YOUR_APP_ID&scope=PERMISSIONS&redirect_uri=YOUR_CANVAS_PAGE 

所以当他们再次来到我身边你的画布页面,你会得到填充了用户数据的signed_request参数。

+0

James,谢谢你的回应。我多次阅读你的回复,但仍然感到抱歉抱歉和我在一起。我正在通过认证成功。我的问题是当他们第二次来到我的画布页面时,我得到了签名请求“$ signed_request = $ facebook-> getSignedRequest();”和访问令牌“$ access_token = $ facebook-> getAccessToken();”在这一点上一切都很好。但是现在,我在我的画布页面中,如何加载位于画布页面内的我的服务器中的我的html页面“mygame.html”? –

+0

嗯,我想你的mygame.html将需要从你的PHP动态生成,它的内容根据用户的登录状态而改变。 –

0

如果您在IE8或更低版本上收到此消息,可能是因为其实施了Platform for Privacy Preferences

我不明白的是我自己,因为我在this page阅读:

您可以通过链接阅读所有有关的无聊的东西,否则只是 安装下面的P3P精简政策头。这将允许Internet Explorer接受您的第三方cookie。您需要在设置Cookie的每个页面上发送 标题。

要做到这一点只需添加这行代码,将设置页眉为您所有的HTTP响应:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');