将Facebook连接与GAE应用程序集成时的“未知URL”

时间:2011-12-22 16:24:57

标签: google-app-engine facebook

我正在尝试将facebook与GAE应用程序集成。当我转到facebook登录按钮所在的页面时,我会收到一个警告框,其中显示消息“Unknown url”。这是配置问题吗?我该如何解决这个问题?

我的Java代码:

    private static final String ApiKey = "xxxxxxxxx";    
    private FBCore fbCore = GWT.create(FBCore.class);    
    private boolean status = true;
    private boolean xfbml = true;
    private boolean cookie = true;

...

        fbCore.init(ApiKey, status, cookie, xfbml);

在我的HTML中我有

 <div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>

在我的Facebook应用程序中,我将网站网址设置为:

网站网址:http://127.0.0.1:8888/MyApplication.html? canvas url:http://127.0.0.1:8888/MyApplication.html

看看IE我发现这个错误:

  

消息:OAuth2规范声明现在应该调用'perms'   '范围'。请更新。行:23个字符:1336代码:0 URI:   http://connect.facebook.net/en_US/all.js

提前致谢。

1 个答案:

答案 0 :(得分:1)

一些注意事项:

  1. 您没有使用Facebook验证您的GAE(服务器)应用。为此,您应该使用server-side flow

  2. 你正在做的是使用GwtFB(我假设),这是Facebook javascript客户端库的包装。该库实现client-side flow,其中只有客户端(浏览器中的js app)针对Facebook进行身份验证。

  3. 不幸的是,FB没有一个实现服务器端流程的库(因为这将依赖于服务器技术,而且只有太多的服务器技术可以支持它们)。对于GAE实施,请参阅LeanEngine,特别是FacebookLoginServlet.javaFacebookAuth

  4. 使用服务器端流程,您需要在Facebook上注册“身份验证后重定向”网址。因此,您不能将dev服务器与私有地址(127.0.0.1,192.168.1.1等)一起使用。您需要一个互联网可见的地址。