在Windows 8 HTML5 / JavaScript应用程序中使用Facebook Dialog

时间:2013-02-07 04:35:36

标签: javascript facebook iframe windows-8 microsoft-metro

我按照对话框文档尝试在Windows 8商店应用程序(html5 / javascript)中显示对话框。

https://developers.facebook.com/docs/reference/dialogs/

在Windows 8商店应用中,我们必须使用iframe来显示其他网页。以下是我所做的一个例子:

<iframe src="https://www.facebook.com/dialog/feed?app_id=145634995501895&redirect_uri=http://www.facebook.com&show_error=true&display=iframe&access_token={access_token}"></iframe> 

由于它是iframe,我指定display = iframe和access_token = {access_token}。 如果您想尝试一下,请记得更改access_token。

我收到以下错误:

API Error Code: 110
API Error Description: Invalid user id
Error Message: Missing user cookie (to validate session user)

enter image description here

我想这可能是由于用户尚未登录这一事实造成的。在文档(https://developers.facebook.com/docs/reference/dialogs/)中,它说“如果用户尚未登录,Facebook会在显示您调用的对话框之前提示他们登录。”我想知道如何提示用户登录?我错过了一个提示用户登录的参数吗?我查看了参数,我似乎没有找到任何东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我看到你的不同行为,我将在此处记录,即使它可能不是“你的答案”。

我获得了自己的访问令牌,当我使用你的IFRAME时,我确实看到尝试重定向到Facebook.com登录;然而,在JavaScript控制台中出现了安全性错误 - 包括以下内容:

  

APPHOST9613:该应用无法导航至   https://www.facebook.com/login.php?api_key=177388709024886&skip_api_login=1 ...   因为这个错误:FORBIDFRAMING。

对login.php脚本的请求会生成X-FRAME-OPTIONS header到DENY的响应。这确实会阻止Facebook的登录页面出现在应用程序内的IFRAME中 - 因此FORBIDFRAMING。

还有some discussion on an MSDN Forum thread,它有点过时,但从那时起我就不知道有任何变化。

我没有尝试使用Windows Azure Mobile Services直接使用Window 8应用程序进行Facebook登录,但可能需要尝试。 Azure移动服务设置非常简单,因此您可以非常快速地了解HTML5 / JS Windows应用商店应用中是否仍存在问题。