我正在尝试按照这里的教程.但是,当我使用看似有效且正确的参数调用FB.init(...)时,我收到错误消息:" 应用程序配置不允许给定URL:不允许一个或多个给定URL应用程序的设置.它必须与网站URL或Canvas URL匹配,或者域必须是其中一个应用程序域的子域. "我已经搜索(1 2)此错误,但其他人似乎只是设置有问题Facebook应用程序配置的站点URL.我99%肯定我已经正确设置了 - 但显然我做错了.
这是我的代码导致问题.出于隐私原因,我已将"XXX"和"YYY"替换为部分信息.
<html>
<body>
<h1>Facebook</h1>
<div id="fb-root"></div>
<script>
// Additional JS functions here
window.fbAsyncInit = function() {
FB.init({
appId : 'XXX', // App ID
channelUrl : '//YYY.com/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};//window.fbAsyncInit()
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "http://connect.facebook.net/en_US/all/debug.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请注意,我必须从教程中给出的示例更改代码底部附近的js.src参数.我怀疑这是导致我的具体问题,但是对教程中的代码质量产生了一些担忧.(当教程代码不起作用时我讨厌它 - 重点是什么?)
您可以在上面的代码中看到我已将我的域名的根目录替换为"YYY".保持这个简单的替换是我的Facebook应用程序配置中的一些值:
App ID: "XXX"
Display Name: "[blah blah blah]"
Namespace: "YYY"
App Domains: "YYY.com"
Sandbox Mode: "Enabled"
Canvas Page: "http://apps.facebook.com/YYY"
Canvas URL: "http://YYY.com/canvas/"
Run Code Online (Sandbox Code Playgroud)
我不确定您可能需要哪些其他细节来帮助我.列出的所有URL都是有效的.谢谢你的帮助!
请注意,我必须从教程中给出的示例更改代码底部附近的js.src参数.
为什么?您是通过从文件系统调用浏览器中的页面进行测试,而不是通过本地Web服务器通过HTTP调用?
如果是后者的话,那么你有没有"域",Facebook的可以验证您的请求发起反对.设置本地Web服务器,通过它调用文档,然后重试,
| 归档时间: |
|
| 查看次数: |
16266 次 |
| 最近记录: |