【问题标题】:Facebook development in localhost本地主机中的 Facebook 开发
【发布时间】:2011-05-30 18:48:05
【问题描述】:

只是想知道是否有任何方法可以在 localhost 中开发 Facebook 应用程序。

【问题讨论】:

    标签: facebook localhost


    【解决方案1】:

    编辑:2012 年 2 月 15 日这是对 localhost 网站使用 FB 身份验证的方法。

    我发现设置第二个 Facebook 应用程序更具可扩展性和方便性。如果我正在构建 MyApp,那么我将创建第二个名为 MyApp-dev。

    • https://developers.facebook.com/apps 创建一个新应用程序
    • (2012 年 2 月 15 日新) 点击“选择您的应用程序如何与 Facebook 集成”下的 Website 复选框 (在最近的 Facebook 版本中,您可以在设置 > 基本 > 添加平台 - 然后选择网站下找到它)
    • Site URL字段(不是App Domains字段)设置为http://www.localhost:3000 (此地址用于Ruby on Rails,根据需要更改)

    • 在您的应用程序初始化程序中,放入代码以检测环境
      • 示例 Rails 3 代码 如果 Rails.env == '发展' || Rails.env == '测试' Rails.application.config.middleware.use OmniAuth::Builder 做 提供者:facebook、“DEV_APP_ID”、“DEV_APP_SECRET” 结尾 别的 # 生产 Rails.application.config.middleware.use OmniAuth::Builder 做 提供者:facebook、'PRODUCTION_APP_ID'、'PRODUCTION_APP_SECRET' 结尾 结尾

    我更喜欢这种方法,因为一旦设置好,同事和其他机器就不需要额外设置了。

    【讨论】:

    • +1ed 这很奇怪!人们说您不能将 localhost 添加为您的应用程序 url。但它只是对我有用。谢谢!
    • 你现在还是这样吗?我似乎无法为 Facebook 添加 localhost、127.0.0.1:5000 或类似于我的应用程序域的任何内容。
    • 我刚刚尝试创建一个新的并遇到了“无效域”问题。谢谢你的收获
    • @zoltarSpeaks 查看我的更新答案。您必须使用不同的字段,而不是“应用程序域”
    • 这会覆盖初始化程序/devise.rb 的 config.omniauth :facebook, 'APP_KEY', 'APP_SECRET', :scope => "email,offline_access.." 吗?
    【解决方案2】:

    当然可以,只需在您的 app_domain 中添加 url localhost(不带“http”),然后在您的 site_url 中添加 http://localhost(带 http)

    更新

    Facebook 现在稍微改变一下,只需转到应用设置,在网站 url 中添加 http: //localhost 并将应用域留空

    【讨论】:

    • 这完全有效。我们这边不需要任何东西。
    • 这不再起作用,您会收到错误无法添加顶级域
    【解决方案3】:

    这是我的配置,它适用于 PHP API:

    应用域

       http://localhost
    

    网站网址

       http://localhost:8082/
    

    【讨论】:

    • 必须填写这两个文本输入才能使 localhost 工作
    【解决方案4】:

    注意:自 2012 年起,Facebook 允许将“localhost”注册为返回 URL。对于其他供应商(例如 Microsoft 供应商),您可能仍需要类似的解决方法。

    如果您需要在 Facebook 注册的真实域名(如 my.really.own.domain.com),您可以在本地将请求重定向到该域到您的计算机。在任何操作系统上最简单的开箱即用方法是更改​​“主机”文件以将域映射到 127.0.0.1(请参阅 http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAAhttps://serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file)。

    我通常使用 Fiddler 为我做这件事(在带有本地 IIS 的 Windows 上) - 请参阅 http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp 上的示例。

    if (oSession.HostnameIs("my.really.own.domain.com")) {
       oSession.host="localhost:80";
    }
    

    Hosts 文件方法不适用于 Visual Studio Development Server,因为它要求传入的 Url 为 localhost/127.0.0.1。如果您需要使用它(或者可能使用 IIS express)来覆盖主机 - Using Fiddler with IIS7 Express

    【讨论】:

      【解决方案5】:

      Facebook 不再允许 FBML Facebook 应用程序使用“localhost”回调 URL

      【讨论】:

      • 确保在您的 Facebook 安全设置中禁用“安全浏览”。如果启用,这将使您的本地主机不可用。
      【解决方案6】:

      有了新的开发中心,现在变得更容易了:

      1) 将应用域留空。
      2) 点击添加平台
      3) 站点 URL 应等于本地主机的完整路径。
      4) 保存更改

      【讨论】:

      • 已验证这是进行 localhost 安装的最佳方式。只需在您的开发环境中插入基本 URL,如上 - 没有 http://,facebook 会为您附加它。简单的东西!谢谢杰
      • 该解决方案解决了我在本地主机上运行时遇到的问题
      【解决方案7】:

      我刚刚发现了一个解决方法:您可以使用 http://localtunnel.com 使您的本地计算机可访问。您需要(临时)更改应用程序代码/html 中使用的一些 URL,以便链接指向临时域,但至少 facebook 可以访问您的计算机。

      【讨论】:

        【解决方案8】:

        在您应用的基本设置中 (https://developers.facebook.com/apps) 在设置->基本->选择您的应用如何与 Facebook 集成...

        使用“站点 URL:”和“移动站点 URL:”分别保存您的生产和开发 URL。两个站点都将被允许进行身份验证。我只是使用 Facebook 进行身份验证,所以我不需要任何移动站点重定向功能。我通常在测试身份验证时将“Mobile Site URL:”更改为“localhost:12345”站点,然后在完成后将其恢复正常。

        【讨论】:

          【解决方案9】:

          您必须选择 Facebook 产品 'facebook login' 并启用 客户端 OAuth 登录、“Web OAuth 登录”和“嵌入式浏览器 OAuth 登录” 那么即使你给 localhost url 它也会工作

          【讨论】:

          • 这有助于解决问题。截至 2018 年 2 月 23 日来自 FB 的消息:3 月,我们正在对您的应用设置进行安全更新,这将使来自下面“有效 OAuth 重定向 URI”字段中未列出的 URI 的调用无效。此更新是为了响应恶意活动我们在我们的平台上看到了,我们希望通过要求重定向 URI 的新严格模式来保护您的应用或网站。
          • Fb 现在需要 https 进行回调。本地主机不支持 https。
          • @huuthang 所以整个问答都被弃用了。
          【解决方案10】:

          有!我的解决方案在您创建应用程序时有效,但您想在您的网站上使用 facebook 身份验证。当您想要创建一个集成到 FB 页面的应用程序时,不需要下面的这个解决方案。

          问题是您不能将“localhost”作为域放在应用程序的 facebook 配置页面中。安全原因?

          您需要转到 OSX / Linux etc/hosts 中的主机文件并添加以下行: 127.0.0.1 dev.yourdomain.com

          你放任何你想要的域名。一个错误是添加这一行: localhost dev.yourdomain.com(至少在 osx 雪豹上不起作用)。

          然后你必须清除你的 dns 缓存。在 OSX 上:在终端中键入 dscacheutil -flushcache。 最后,回到在线的facebook开发者网站,在你的应用的配置页面中,可以添加域“dev.yourdomain.com”。

          如果您使用 Mamp、Easyphp 等程序,请确保 Apache 的端口为 80。

          这个解决方案应该适用于 Windows,因为它还有一个 hosts 文件。尽管如此,据我所知,Windows 7 不再使用此文件,但如果您找到一种强制 Windows 使用主机文件的方法,这个技巧应该会起作用。

          【讨论】:

          • 适用于 win8.1 c:\windows\system32\drivers\etc\hosts 。您可能需要在 chrome URL = chrome://net-internals/#dns 中刷新“主机解析器缓存”
          【解决方案11】:

          这在 2018 年 6 月有效,即使在 HTTPS 要求之后也是如此。看来测试应用不需要 https:

          创建一个测试应用: https://developers.facebook.com/docs/apps/test-apps/

          然后在测试应用中,按照此视频中的简单步骤操作: https://www.youtube.com/watch?v=7DuRvf7Jtkg

          【讨论】:

            【解决方案12】:

            我认为您应该能够使用 Visual Studio 开发 Web 服务器开发应用程序:在 http://www.facebook.com/developers/ 上启动一个新的 FaceBook 应用程序。然后将站点 URL 和画布 URL 的设置设置为您网站的运行实例,例如:http://localhost:1062/

            这里有几个链接可以帮助你开始使用 FaceBook:

            1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/,
            2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html,
            3. http://apps.facebook.com/thinkdiffdemo/

            希望这会有所帮助。

            【讨论】:

              【解决方案13】:

              试试这个 ---

              https://www.facebook.com/help/community/question/?id=589302607826562

              1 - 点击应用,然后选择您的应用。

              2 - 点击屏幕左侧的设置按钮。

              3 - 在基本设置中,单击下方的添加平台按钮 设置配置。

              4 - 在平台对话框中选择网站。

              5 - 输入您的 URL(本地主机在这里工作)。

              6 - 在 App Domains 文本输入中,添加与 URL 中匹配的域。

              7 - 保存您的设置。

              【讨论】:

                【解决方案14】:

                假设您已将您的应用注册为:

                app.domain.com
                

                你只需要修改/etc/hosts文件添加

                127.0.0.1 dev01.app.domain.com
                

                然后,修改你的 apache 配置

                ServerName dev01.app.domain.com
                

                然后重启 apache。

                您需要将 URL 放入变量中,以便在某些调用中将其用作 XML 参数:

                <fb:login-button registration-url="http://<?=$URL?>/register" />
                

                【讨论】:

                  【解决方案15】:

                  没有足够的信誉来评论最高投票的答案,但至少在我的 rails 环境(运行 4)中,rails s 位于 http://localhost:3000,而不是 http://www.localhost:3000。当我将其更改为http://localhost:3000 时,它工作得很好。无需编辑任何主机文件。

                  【讨论】:

                    【解决方案16】:

                    app domain : localhost

                    site URL : http://localhost:4440/

                    使用新 UI 为我工作。

                    【讨论】:

                      【解决方案17】:

                      我的解决方案在 localhost 中运行良好..... 对于站点 URL,请使用 http://localhost/ 对于应用程序域使用localhost/folder_name 休息一切都是一样的......它工作正常 (尽管它在 App Domain 中显示红旗..App 运行良好)

                      【讨论】:

                        【解决方案18】:

                        在 facebook 登录选项卡点击设置下很容易转到应用程序仪表板 然后选择 Enforce HTTPS No, save settings

                        【讨论】:

                          【解决方案19】:

                          应用程序将在 localhost:3000 中正常运行,您只需指定应用程序在生产模式下将运行的 https 地址。
                          选项 2 是提供 url 或您的 heroku 网站,让您在生产模式下拥有示例应用程序。

                          【讨论】:

                            【解决方案20】:

                            最新更新: 如果您在开发中对其进行测试,则不必提供任何 url。您可以将这些字段留空。确保您的应用处于开发模式。如果没有从直播中关闭状态。

                            无需提供站点 url、应用程序域或有效的重定向 oauth uri。

                            【讨论】:

                            • 请注意,如果您将应用程序从“实时”转换为“开发”,您将能够从开发机器上的 localhost 登录,但您的所有实时用户将无法再登录。跨度>
                            • 我这样做了,但它仍然给我错误,并且 fb 按钮不会显示
                            • 创建应用程序后,单击“创建测试应用程序”按钮以​​获取仅用于开发/测试的应用程序。我仍然需要将“localhost”添加到应用程序域。
                            • @J.Money 我认为它现在可能会改变。谢谢你告诉我。
                            猜你喜欢
                            • 2013-11-05
                            • 1970-01-01
                            • 2010-12-25
                            • 2018-07-02
                            • 2010-10-22
                            • 2012-03-22
                            • 1970-01-01
                            相关资源
                            最近更新 更多