Configuration 应用程序配置不允许给定URL

Configuration 应用程序配置不允许给定URL,configuration,facebook-javascript-sdk,facebook-social-plugins,Configuration,Facebook Javascript Sdk,Facebook Social Plugins,我在我的html页面中使用了这个 <script> window.fbAsyncInit = function() { // init the FB JS SDK FB.init({ appId : 'xxxxxxxxxxxxxx', // App ID from the App Dashboard status : true, // check the login status upon init? c

我在我的html页面中使用了这个

<script>     
window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : 'xxxxxxxxxxxxxx', // App ID from the App Dashboard
      status     : true, // check the login status upon init?
      cookie     : true, // set sessions cookies to allow your server to access the session?
      xfbml      : true  // parse XFBML tags on this page?
    });

    // Additional initialization code such as adding Event Listeners goes here
};

// Load the SDK's source Asynchronously
// Note that the debug version is being actively developed and might 
// contain some type checks that are overly strict. 
// Please report such bugs using the bugs tool.
(function(d, debug){
     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 = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));

 function shareOnFb(action, msg){
    FB.ui({ 
        method: action, 
        message: msg
    });
 }
</script>

window.fbAsyninit=函数(){
//初始化FBJSSDK
FB.init({
appId:'xxxxxxxxxxxx',//应用程序仪表板中的应用程序ID
status:true,//在初始化时检查登录状态?
cookie:true,//设置会话cookie以允许服务器访问会话?
xfbml:true//是否解析此页面上的xfbml标记?
});
//附加的初始化代码(如添加事件侦听器)如下所示
};
//异步加载SDK的源代码
//请注意,调试版本正在积极开发中,可能
//包含一些过于严格的类型检查。
//请使用bug工具报告此类bug。
(功能(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=“//connect.facebook.net/en_US/all”+(debug?/debug):“)+”.js”;
ref.parentNode.insertBefore(js,ref);
}(文档,/*debug*/false));
功能shareOnFb(操作,消息){
FB.ui({
方法:行动,
信息:msg
});
}
每当我尝试调用任何FB方法时,它都会在我的控制台中这样说

应用程序配置不允许给定URL。示例:一或 应用程序的设置不允许使用更多的给定URL。它必须 匹配网站URL或画布URL,或者域必须是子域 其中一个应用程序域的

这是我的fb应用程序设置。。我现在在本地运行我的网站,所以我尝试添加

localhost/OfferDrive/此页面上的应用程序域,但它表示错误,该域无效


您需要使用值
http://localhost/OfferDrive/
为了允许Facebook验证来自JavaScript SDK的请求是否来自正确的位置

注意,localhost是FB在这里允许的一个特殊字符串。如果您没有在localhost下配置调试环境,就我所知,您必须将其置于该名称下。

旧javascript sdk有时会出现此错误。如果在本地保存javascript文件。更新它。我更喜欢一直从facebook服务器加载它

更新Anvesh Saxena的答案(正确但过时,因为FB应用程序界面已更改):

在您的FB应用程序配置中,您需要添加一个带有网站URL设置的网站平台。然后,您可以将我设置的应用程序域添加到我们网站的基本域(例如,对于
http://www.mycoolwebsite.com
,只需使用
mycolwebsite.com


重要提示:为了使此功能正常工作,您需要使用应用程序URL的子域进行本地开发。通过修改开发计算机上的主机文件以使用网站不存在的子域(如
local.mycolwebsite.com
),您可以轻松做到这一点。如果您不熟悉如何进行此操作,只需为您的平台(例如mac/windows)搜索“编辑主机文件”。

其他答案中缺少的是如何允许localhost(或0.0.0.0或其他)作为oauth回调url。这是解释

对munsellj更新的更新

在开发过程中,我只需将localhost:3000添加到“网站URL”选项中,并将“应用程序域”框留空,就可以实现这一点。
正如munsellj提到的,确保您添加了一个网站平台。

另一个可能发生这种情况的原因是您发送了错误的appId。如果您有一个开发应用程序和一个生产应用程序,这可能会在早期开发中发生。如果您为dev硬编码appId并将其推送到prod,则会显示。

设置->高级,将url添加到“有效的OAuth重定向URI”。这对我很有用。

  • 单击我的应用,然后从下拉列表中选择你的应用
    (如果您尚未创建任何应用程序,请选择“添加新应用程序”以创建新应用程序)
  • 转到
    应用程序设置>基本选项卡
    ,然后单击底部的“添加平台”
  • 选择“网站”,然后添加要登录的网站,作为
    网站URL
    (例如
    mywebsite.com
  • 如果您在本地进行测试,您甚至可以只提供应用程序的本地主机URL。
    例如,
    http://localhost:8080/myfbsampleapp
  • 保存更改,您现在可以从
    http://localhost:8080/myfbsampleapp
  • 从位于左上角的应用程序名称菜单项中,创建一个测试应用程序
  • 在新测试应用程序的设置部分:将“”添加到网站url,并将“localhost”添加到应用程序域
  • 使用新的Facebook应用程序Id更新你的应用程序
  • 使用Facebook sdk v2.2或应用程序中的任何最新版本

  • 可能是@AlexeiLevenkov thnx的副本,但我甚至不知道我在使用graph API:P thnx让我知道。。我现在可以更好地搜索我的查询了:我正在获取消息-应用程序的设置不允许使用URL。它必须与网站URL或画布URL匹配,或者该域必须是应用程序域之一的子域。我猜它成功了,至少我现在遇到了一些语法错误;)将解决这个问题,并让您知道,如果您遇到任何其他问题,如何在发布到墙上时发布图像。。我收到一个错误“流中不允许FBCDN图像”这里也一样:不允许顶级域我也收到顶级域错误。为开发目的创建一个单独的Facebook应用程序,并在单击“添加平台”->“网站”后设置其“网站URL”(而不是“应用程序域”)对我来说很有效。我遵循了上面的所有建议,但没有一个有效,直到我将我的应用程序直接指向Facebook CDN,它才最终起作用(在本地使用了旧版本)如前所述,另一种可能的解决办法