【问题标题】:Given URL is not permitted by the application configuration应用程序配置不允许给定 URL
【发布时间】:2013-01-06 14:27:10
【问题描述】:

我在我的 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>

当我每次尝试调用任何 FB 方法时,它都会在我的控制台中显示这一点

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

这是我的 fb 应用程序设置.. 我需要在这里更改一些东西吗,我暂时在本地运行我的网站,所以我尝试添加

localhost/OfferDrive/ 到此页面上的应用程序域,但它说错误,它不是一个有效的域

【问题讨论】:

  • @AlexeiLevenkov thnx,但我什至不知道 m 使用图形 API:P thnx 让我知道.. 我现在可以更好地搜索我的查询:D
  • 我收到消息 - 应用程序设置不允许 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。

标签: configuration facebook-javascript-sdk facebook-social-plugins


【解决方案1】:

您需要将 Website with Facebook Login 的值填充为 http://localhost/OfferDrive/ 以允许 Facebook 验证来自 JavaScript SDK 的请求来自正确的位置

【讨论】:

  • 我猜它成功了,至少我现在遇到了一些语法错误;)会解决这个问题并让你知道
  • 如果您遇到任何其他问题,请发布
  • 如何在发布到墙上的同时发布图像.. 我收到一个错误“流中不允许 FBCDN 图像”
  • 此处相同:不允许使用顶级域
  • 我也收到了顶级域错误。为开发目的创建一个单独的 Facebook 应用程序并在单击“添加平台”->“网站”后设置其“站点 URL”(而不是“应用程序域”)对我有用。
【解决方案2】:

注意,localhost 是 FB 允许的特殊字符串。如果您没有在 localhost 下配置调试环境,那么据我所知,您必须将其推到该名称下。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我按照上面的所有建议都没有奏效,直到我将我的应用程序直接指向 Facebook CDN,它才终于奏效(在本地使用的是旧版本)
    【解决方案4】:

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

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

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

    【讨论】:

    • Heroku 提到的另一种可能的解决方案是创建一个单独的 Facebook 应用程序进行开发(请参阅devcenter.heroku.com/articles/…)。请注意,使用 127.0.0.1:5000 对我来说在 Facebook 上返回错误,但 localhost:5000 工作正常。
    • 我收到消息 - 应用程序设置不允许 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。
    • 我拥有所有这些,但错误地使用了...heroku.com 而不是...herokuapp.com。当我修复这些并更新所有内容以使用 https:// 时,它开始工作得很好。
    【解决方案5】:

    其他答案中缺少的是如何允许 localhost(或 0.0.0.0 或其他)作为 oauth 回调 url。这是解释。 How can I add localhost:3000 to Facebook App for development

    【讨论】:

      【解决方案6】:

      对 munsellj 的更新..

      我只需将 localhost:3000 添加到“网站 URL”选项并将“应用程序域”框留空即可。 正如 munsellj 所说,请确保您已添加网站平台。

      【讨论】:

        【解决方案7】:

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

        【讨论】:

        • 解决了我的问题!忘记改appid,开始着急了。
        【解决方案8】:

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

        【讨论】:

        • 谢谢!为我工作,我添加了 localhost 和 localhost:8100 (进行 Ionic 开发)
        • 谢谢!!我在“基本”页面上尝试了各种组合,甚至没有注意到“高级”上的 OAuth 字段。
        • 我们更改了应用的域,将其移至子域。即使子域已获得授权,这也是必需的。
        • 非常感谢。我添加了 localhost:3000 (Node.JS) 并且它有效!再次感谢
        【解决方案9】:
        • 转到Facebook for developers dashboard
        • 点击My Apps 并从下拉列表中选择您的应用程序。
          (如果您尚未创建任何应用,请选择“添加新应用”以创建新应用)。
        • 转到App Setting &gt; Basic Tab,然后点击底部的“添加平台”。
        • 选择“网站”并添加要以Site URL登录的网站(例如mywebsite.com
        • 如果您在本地进行测试,您甚至可以只提供应用的 localhost URL。
          例如。 http://localhost:8080/myfbsampleapp
        • 保存更改,您现在可以从http://localhost:8080/myfbsampleapp 访问 Facebook 信息

        【讨论】:

        • 获取消息 - 应用程序设置不允许 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。
        • @BhavikAmbani 你试过我的答案了吗?
        • @幸运的是,仍然面临同样的问题
        • @BhavikAmbani 您在哪一步收到消息?请正确验证您在页面中输入的网站 URL..
        • @Lucky 我已经验证了同样的信息,也收到了同样的信息。
        【解决方案10】:
        1. 从位于左上角的应用名称菜单项中,创建一个测试应用。
        2. 在新测试应用的设置部分:将“http://localhost:3000”添加到网站 url,并将“localhost”添加到应用域。
        3. 使用新的 Facebook APP ID 更新您的应用
        4. 在您的应用中使用 Facebook sdk v2.2 或任何最新版本。

        【讨论】:

          猜你喜欢
          • 2016-01-06
          • 1970-01-01
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多