【问题标题】:Facebook app domain name when using localhost使用 localhost 时的 Facebook 应用程序域名
【发布时间】:2012-11-14 10:08:09
【问题描述】:

来自这里的教程:
http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/

我尝试为我的 Facebook 应用设置本地开发区。但是当我把“http://localhost:85/my_app/”作为我的域名时,Facebook 说

应用程序域:“http://localhost:85/app-name/”不应包含协议信息。

此外,当我将“localhost:85/my_app/”作为我的域名时,我收到错误:

应用程序域:localhost:85/my_app/ 不是有效域。

【问题讨论】:

  • 我不相信您要更新的是“应用程序域”,而是您要更新的是位于以下位置的“站点 URL”:应用程序 > 编辑应用程序 > 设置 > 基本 > 网站Facebook登入。确保它被选中为绿色,并且“站点 URL”将出现。您可以输入 http://localhost - 无需指定端口,但您最需要指定协议。
  • 无法让 localhost 在 App Domain 下工作。将高级设置|“有效 OAuth 重定向 URI”设置为 localhost url (http://localhost:port#)。见github.com/tschellenbach/Django-facebook/issues/376
  • 另请注意,应用程序域必须是 localhost 才能接受域。我尝试使用 mysite.local,但它不起作用。更改 Site URL to http://localhost:85/App Domains to http://localhost:85/ 然后保存(FB 修改的应用程序域)以使其工作。
  • 其他要尝试的方法:“在客户端 oAuth 设置下,它显示为重定向 URI 使用严格模式,确保将其设置为否并点击保存。” -- wp-native-articles.com/blog/news/…
  • Facebook 登录需要 HTTPS。您仍然可以使用带有“localhost”地址的 HTTP,但前提是您的应用程序仍处于开发模式。 developers.facebook.com/blog/post/2018/06/08/…

标签: facebook


【解决方案1】:

似乎协议已更改。

这是我的解决方案(我在 2015 年 4 月 3 日进行了测试,效果很好):

设置 -> 基本标签

  1. 应用域: localhost
  2. 点击“+添加平台”并选择“网站
  3. 网站网址: http://localhost:<port>/ 是您的端口号)
  4. 保存更改

【讨论】:

  • 谢谢!这对我有用(2016 年 5 月)。注意,127.0.0.1 不起作用。
  • 2017 年 6 月为我工作
  • 有效! 2017 年 12 月
  • 成功了! 2021 年 2 月
【解决方案2】:

我的解决方案:

  1. 将应用程序域留空
  2. (产品)Facebook 登录 > 设置
  3. http://localhost:85/my_app/ 添加到Valid OAuth redirect URIs
  4. 保存更改

【讨论】:

  • @Matt Long:我没有找到有效的 OAuth 重定向 URI 框是否已被删除?
  • @MattLong 谢谢!我通过使用 Supasates 解决方案让它工作。
  • 为我工作! (2018 年 2 月)
  • 2020 年 10 月 18 日我收到此警告“localhost 仅在开发模式下自动允许重定向,无需在此处添加。”
【解决方案3】:
  1. 将应用程序域留空
  2. 使用 Facebook 登录访问网站
  3. 添加http://localhost:port_number/
  4. 保存更改并重试。 欲了解更多信息,请访问

http://developers.facebook.com/docs/samples/canvas/ 快乐编码:-)

【讨论】:

  • 无法让 localhost 在 App Domain 下工作。将高级设置|“有效 OAuth 重定向 URI”设置为 localhost url (http://localhost:port#)。见github.com/tschellenbach/Django-facebook/issues/376
  • “使用 Facebook 登录的网站”是什么意思? “应用程序域”旁边的选项?我没看到。在“高级设置 | 有效的 OAuth 重定向 URI”中添加 localhost 条目对我有用
  • 做到了,仍然出现错误:“应用程序配置不允许给定 URL”
  • 工作正常。我只想评论一下,这仅适用于答案中的“localhost”。我尝试使用127.0.0.1:8000 并没有工作
【解决方案4】:

多年来,这已经发生了一些变化,但我只是让它与我在 localhost 上运行的 web 应用程序一起工作。这就是我所做的:

  1. 转到https://developers.facebook.com/apps
  2. 选择您的应用。
  3. 从左侧导航栏中选择设置 > 基本。
  4. 点击页面底部的添加平台按钮。
  5. 点击网站
  6. 输入 http://localhost:8080/ 作为站点 URL。
  7. 单击您刚刚输入的站点 URL 最右侧的快速启动按钮。
  8. 将打开一个新选项卡。在该选项卡上,向下滚动到“向我们介绍您的网站”部分,然后再次输入 http://localhost:8080/ 作为网站 URL。
  9. 单击“下一步”按钮。
  10. 尝试再次登录,这次成功了。

祝你好运!

【讨论】:

  • 有没有办法使用两个域? localhost 和用于生产的域:/
  • 不工作:仍然卡在,URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。确保客户端和 Web OAuth 登录已打开,并将您的所有应用程序域添加为有效的 OAuth 重定向 URI。
【解决方案5】:

2018 年工作解决方案

我花了很长时间才弄清楚这一点,所以我将分享我的解决方案。

我尝试了所有建议的答案,但对我没有任何效果,最后我所要做的就是转到https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/,并在有效的 OAuth 重定向 URI 中添加我的完整回调 url em>框。

在我的例子中,使用 ruby​​ on rails,我的 url 看起来像这样 http://localhost:3000/user/auth/facebook/callback

在我添加它之后,一切都开始工作了!希望这可以帮助其他面临此问题的人。

【讨论】:

  • 谢谢!令人惊讶的是,您目前拥有完美的可行解决方案!干杯。
  • 是的,谢谢。这对我有用。我将localhost:5001 添加到部分:Valid OAuth redirect URIs 并启用:Embedded Browser OAuth Login
  • 这也对我有用。这是当前的工作解决方案。我从本地主机为 Facebook 登录创建了我的应用程序的测试版本。 (直到 Facebook 再次改变!)
  • 谢谢!皮塔饼。在我添加之后,弹出了这个通知。 3 月,我们将对您的应用设置进行安全更新,这将使来自下方有效 OAuth 重定向 URI 字段中未列出的 URI 的调用无效。此更新是为了响应我们在平台上看到的恶意活动,我们想要通过要求重定向 URI 的新严格模式来保护您的应用或网站 似乎他们开始得很早?
  • 谢谢!我也花了很长时间(直到我找到了这个答案)。问题是您从 FB 获得的错误建议您应该将您的域添加到“应用程序的域”中,这与实际问题无关。感谢您再次浪费我的时间 FB :(
【解决方案6】:

这是我以前做的。

如果您使用的是 Windows,则需要修改主机文件。主机文件位置将在%SystemRoot%\System32\drivers\etc\

像这样在主机文件中添加一个新行

127.0.0.1    localhost.YOUR-SITE-NAME.com

保存主机文件。

转到 FB 应用程序设置控制面板并在应用程序域字段中提供localhost.YOUR-SITE-NAME.com。保存更改。

现在从您的浏览器加载您的本地环境,例如 localhost.YOUR-SITE-NAME.com

注意:将 YOUR-SITE-NAME 更改为您的域名。

【讨论】:

    【解决方案7】:

    工作解决方案(2018 年 8 月)

    首先,在developers dashboard 中选择您的应用。

    然后确保您的应用位于development mode,因为它允许 localhost over HTTP。为此,请单击位于应用页面右上角的切换开关。

    最后,请遵循以下注意事项,如果填写不当可能会引起麻烦:

    • Settings &gt; Basic &gt; App Domains 应该为空
    • Products &gt; Facebook Login &gt; Settings &gt; Valid OAuth Redirect URIs 应该为空

    【讨论】:

    • 它还在工作吗?如果我将我的应用程序置于开发模式,我会收到白标错误。
    • 我有一个生产应用程序的测试应用程序版本(始终处于开发模式),清除了所有字段,但仍然收到错误:OAuthException URI mismatch
    • 当您的应用处于开发模式时,您无法测试任何需要您提交应用的端点
    • 谢谢兄弟,是的,这很难最终弄清楚
    【解决方案8】:

    您可以将其留空或使用localhosthttp://localhost:85/my_app/ 是网址

    【讨论】:

    • 是的,我知道它的 url,但 dat wot 是在教程中完成的,他声称它有效……这就是我尝试它的原因……顺便说一下,我也尝试了 localhost: 85 但它 ddnt 工作,但是当我尝试 localhost 只有它工作......我想使用 :85 的原因是因为那是我的 apache 正在使用的端口......
    • 端口是协议信息,该字段不需要。正如消息所说:不应包含协议信息。
    • 留空就行了。还有一件事它不接受localhost 作为域名。
    【解决方案9】:

    当我编写该教程时,应用程序域中允许使用端口。而且我实际上能够使用 81 端口(wamp 服务器)运行应用程序。现在看起来 facebook 不允许在 url 中使用端口。您可以在应用程序域中使用localhost

    我会尽快更新信息。我正在尝试找出解决方案。

    临时解决方案是使用 localtunnel http://progrium.com/localtunnel/

    【讨论】:

      【解决方案10】:

      我对此进行了测试,它适用于我 [2020 年 2 月]:

      1. 安装 ngrok 并获取您的 https 网址(例如:https://a3asdf23.ngrok.io
      2. 转到 FB App Dashboard Settings (Basic) -> 在 App Domains 下 -> 添加 https://a3asdf23.ngrok.io, https://ngrok.io
      3. 在同一页面,一直向下滚动,添加平台(网站),设置url为https://a3asdf23.ngrok.io。还没有完成,点击快速开始 -> 在“告诉我们您的网站”下,输入相同的网址https://a3asdf23.ngrok.io
      4. 然后转到产品 -> Facebook 登录 -> 设置 -> 客户端 OAuth 设置 -> 有效 OAuth 重定向 URI -> 添加这些 https://a3asdf23.ngrok.iohttps://ngrok.iohttps://a3asdf23.ngrok.io/{your-redirect-uri}

      给你。稍后谢谢我:)

      【讨论】:

      • 这太荒谬了。 Facebook 应该有一个更简单的方法来做到这一点。本地主机是一个标准,我们应该单击一个框,就是这样。浪费我们的时间。
      【解决方案11】:

      您必须创建一个隧道来共享您的本地主机; Ngrok 可能是最简单的方法。

      【讨论】:

        【解决方案12】:

        https://ngrok.com

        通过https://ngrok.com/ 链接下载 ngrok 并解压缩该文件。 打开cmd(搜索cmd) 转到解压缩 ngrok 的目录。 从命令行打开 ngrok ex: c:/ngrok/ngrok.exe [port] 或 cd c:/ngrok 然后 ngrok 80 ( ngrok [port] ) 你会得到

        ngrok

        Tunnel Status                 online
        Version                       1.3/1.3
        Forwarding                    http://3ahsdfhska.ngrok.com -> 127.0.0.1:80
        Forwarding                    https://3ahsdfhska.ngrok.com -> 127.0.0.1:80
        Web Interface                 http://127.0.0.1:4040
        # Conn                        0
        Avg Conn Time                 0.00ms
        

        不要忘记确保您的 wamp 服务器在同一端口上打开...... (如何检查 -> goto->wampicon->apache->httpd.conf 搜索端口或 80(默认)将其用于 ngrok.exe 80)

        http://3ahsdfhska.ngrok.com

        将是用于在线访问您的本地主机的 URL

        【讨论】:

        • 我想测试 ngrok 以将其发送到我的 servlet。我的 servlet 在特定路径上运行。例如:localhost:8080/plugins/servlet 我如何指示 ngrok 到那里转发?
        【解决方案13】:

        我尝试了这里提到的所有解决方案,但都没有奏效。

        解决我的问题的方法是将“OAuth 重定向 URI”从 firebase 复制到 facebook 应用“有效 OAuth 重定向 URI”

        我把所有域都留空了

        【讨论】:

        • 可以确认这是 2021 年 1 月唯一有效的方法。
        【解决方案14】:

        如果您遇到协议错误,不仅需要删除 Http://,而且如果网址末尾有任何反斜杠,您也必须将其删除,否则它将不起作用。我做到了,而且效果很好!哈拉!

        【讨论】:

          【解决方案15】:

          再加入一种解决方案:

          我按照说明设置了我的网站,然后添加了第二个应用程序 (Facebook Canvas) 并将该 URL 设置为 http://localhost:XXXXX。现在我可以在本地和生产环境中访问 FB。

          【讨论】:

            【解决方案16】:

            我在本地开发,我使用这个网址:localhost/fb

            然后我必须添加一个具有以下 URL 的网站:http://localhost

            App Domains下我添加了localhost

            现在可以了。我遇到的唯一问题是,您必须在所有脚本中使用此 URL。例如

            $loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions);
            

            你不能在这里使用127.0.0.1 ...

            【讨论】:

              猜你喜欢
              • 2014-02-13
              • 2019-09-28
              • 2017-04-04
              • 2018-03-30
              • 2011-02-13
              • 2011-10-26
              • 2011-11-28
              • 2012-01-24
              相关资源
              最近更新 更多