本地主机中的 Facebook 开发

我只是想知道有没有什么办法可以在本地主机上开发 Facebook 应用程序。

152335 次浏览

Facebook 不再允许 FBML Facebook 应用程序使用“本地主机”回调 URL

我认为您应该能够使用 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/

希望这个能帮上忙。

注意: 从2012年起,Facebook 允许将“ localhost”注册为返回 Url。对于其他提供商(比如 Microsoft) ,您可能仍然需要类似的解决方案。

如果你需要在 Facebook 上注册真正的域名(比如 my.really.own.domain.com ) ,你可以在本地将这个域名的请求重定向到你的机器上。在任何操作系统上,最简单的开箱即用的方法是更改“ hosts”文件,将域映射到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 为我做这件事(在 Windows 与本地 IIS)-见 http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp示例。

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

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

编辑: 2-15-2012这是如何使用本地主机网站的 FB 身份验证。

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

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

enter image description here

  • 在应用程序初始值设定项中,放入代码以检测环境
    • Rails 3代码示例
      if Rails.env == 'development' || Rails.env == 'test'
      Rails.application.config.middleware.use OmniAuth::Builder do
      provider :facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
      end
      else
      # Production
      Rails.application.config.middleware.use OmniAuth::Builder do
      provider :facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET'
      end
      end
      

I prefer this method because once it's set up, coworkers and other machines don't have additional setup.

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

假设您已经将应用程序注册为:

app.domain.com

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

127.0.0.1 dev01.app.domain.com

然后,修改 Apache 配置

ServerName dev01.app.domain.com

重启阿帕奇。

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

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

当然可以,只需在 app _ domain 中添加 url localhost (没有“ http”) ,然后添加 site _ url http://localhost(使用 http)

更新

Facebook 现在改变了一些东西,只需要进入应用程序设置,在网站地址中添加 http: //localhost,应用程序域保持为空

在你的应用程序的基本设置(https://developers.facebook.com/apps) 在设置-> 基本-> 选择你的应用程序如何与 Facebook 整合..。

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

有的!当你创建一个应用程序时,我的解决方案是有效的,但是你想在你的网站上使用 Facebook 认证。下面的解决方案是不需要的,当你想创建一个应用程序集成到 FB 页面。

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

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

你想要的域名。一个错误是添加这一行: 本地主机 dev.yourdomain.com (至少在 osx 雪豹在 nt 工作)。

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

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

这个解决方案应该适用于 Windows,因为它还有一个主机文件。尽管如此,据我所知,Windows 7已经不再使用这个文件了,但是如果你想办法强制 Windows 使用一个主机文件,这个技巧应该可以奏效。

没有足够的信誉评论最高的投票答案,但至少在我的轨道环境(运行4) ,轨道 s 是在 http://localhost:3000,而不是 http://www.localhost:3000。当我把它改成 http://localhost:3000的时候,它工作得很好。不需要编辑任何主机文件。

有了新的开发中心,现在就容易多了:

1)将应用程序域保留为空白。
2)按「添加平台」
3)站点 URL 应该等于本地主机的完整路径。
4)保存更改

我的解决方案在本地主机上运行良好... ..。 对于站点 URL,请使用 http://localhost/ 对于应用程序域使用 localhost/folder_name 休息一下,一切正常 (尽管它在 App Domain. . App 中显示了红旗,但是运行良好)

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

应用程序域名

   http://localhost

网址

   http://localhost:8082/

app domain : localhost

site URL : http://localhost:4440/

为我的新用户界面工作。

试试这个

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

1-点击应用程序,然后选择你的应用程序。

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

在基本设置中,单击 设置配置。

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

输入你的 URL (localhost 在这里工作)。

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

保存你的设置。

你必须选择 Facebook 产品‘ Facebook login’并启用 客户端 OAuth 登录,‘ Web OAuth 登录’和‘嵌入式浏览器 OAuth 登录’ 然后,即使你给本地主机网址,它将工作 < img src = “ https://i.stack.imgur.com/sidt0.png”alt = “ enter image description here”> < img src = “ https://i.stack.imgur.com/sidt0.png”alt = “ enter image description here”>

这个工作在2018年6月,甚至在 HTTPS 要求之后。似乎一个测试应用程序不需要 HTTPS:

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

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

很容易进入应用程序仪表板下的 facebook 登录选项卡点击设置 然后选择 Enforce HTTP No,save setings< img src = “ https://i.stack.imgur.com/X0jan.jpg”alt = “ enter image description here”>

应用程序在 localhost: 3000中运行得很好,只需要指定生产模式下应用程序所在的 https 地址。
选项2是提供网址或您的 Heroku 网站,让您有样品应用程序在生产模式。

enter image description here

最新更新: 如果您正在开发中测试它,则不必提供任何 url。你可以让田地空着。确保你的应用程序处于开发模式。如果没有关闭活动状态。

不需要提供网站的网址,应用程序域名或有效的重定向文件。

enter image description here