我正在尝试将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
提前致谢。
答案 0 :(得分:1)
一些注意事项:
您没有使用Facebook验证您的GAE(服务器)应用。为此,您应该使用server-side flow。
你正在做的是使用GwtFB(我假设),这是Facebook javascript客户端库的包装。该库实现client-side flow,其中只有客户端(浏览器中的js app)针对Facebook进行身份验证。
不幸的是,FB没有一个实现服务器端流程的库(因为这将依赖于服务器技术,而且只有太多的服务器技术可以支持它们)。对于GAE实施,请参阅LeanEngine,特别是FacebookLoginServlet.java
和FacebookAuth
。
使用服务器端流程,您需要在Facebook上注册“身份验证后重定向”网址。因此,您不能将dev服务器与私有地址(127.0.0.1,192.168.1.1等)一起使用。您需要一个互联网可见的地址。