我按照对话框文档尝试在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)
我想这可能是由于用户尚未登录这一事实造成的。在文档(https://developers.facebook.com/docs/reference/dialogs/)中,它说“如果用户尚未登录,Facebook会在显示您调用的对话框之前提示他们登录。”我想知道如何提示用户登录?我错过了一个提示用户登录的参数吗?我查看了参数,我似乎没有找到任何东西。
感谢您的帮助。
答案 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应用商店应用中是否仍存在问题。