您的应用的Canvas页面无法加载

时间:2013-04-11 08:58:19

标签: facebook review

如果我直接访问网址(https://apps.facebook.com/ [appnamespace] /或https://mydomain.com/,我有一个Facebook应用程序(游戏)非常有效,最后一个是画布URL)。 但每次我提交应用程序进行审核时,我都会收到以下反馈:“请从我们的审核小组处理以下反馈。一旦您进行了下面列出的更改,您可以重新提交以供审核。”和“您的应用程序的画布页面无法加载”。

问题是我真的不知道要改变什么,因为对于我和与我分享链接的朋友来说,它正在按预期工作。

我在Chrome控制台中只有一个错误,即:
“不安全的JavaScript尝试使用网址https://mydomain.com/从URL https://apps.facebook.com/ [appnamespace] /访问框架。正在访问的框架将'document.domain'设置为'facebook.com',但请求访问的帧没有。两者都必须将'document.domain'设置为相同的值以允许访问。

我没有在我的页面中指定document.domain,虽然我之前尝试了一些值来摆脱此错误消息但没有成功。每次我为document.domain设置一个值时,我在控制台中都会收到另一个错误:“未捕获的错误:SecurityError:DOM异常18”。

我没有发现任何有效的东西。
所以任何帮助/提示将不胜感激。我还试图在评论描述消息中要求更详细的反馈,但我仍然得到相同的消息,不知道如何解决问题。

感谢。

1 个答案:

答案 0 :(得分:0)

所以我终于解决了这个问题 问题是当用户没有连接到Facebook时我没有测试应用程序。对我来说,该应用程序不应该在Facebook游戏中心之外使用(虽然它是可能的)和Facebook可能在应用程序审查期间测试这个案例。因此,以下事件都不会被触发:

  • auth.statusChange
  • auth.authResponseChange
  • auth.login

要解决这个问题,我打电话给getLoginStatus,如下所示:

FB.getLoginStatus(function (response) {
        console.log('[Facebook] getLoginStatus: ' + response.status);

        if (response.status !== 'connected' &&
            response.status !== 'not_authorized')
        {
            console.log('[Facebook] not connected');
            $('#loginscreen').show();
            $('#btn-fb-login').click(function (event) {
                event.preventDefault();
                FB.login(function (response) {
                    $('#loginscreen').hide();
                    start(response);
                }, { scope: 'email,publish_actions'});
            });
        }
    });