Facebook开发在localhost

时间:2010-12-26 04:15:19

标签: facebook localhost

只是想知道我是否有办法在localhost中开发Facebook应用程序。

21 个答案:

答案 0 :(得分:243)

编辑:2-15-2012这是如何对localhost网站使用FB身份验证。

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

  • https://developers.facebook.com/apps
  • 创建一个新应用
  • (2012年2月15日新增)点击“选择应用与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
      

我更喜欢这种方法,因为一旦设置好,同事和其他机器就没有额外的设置。

答案 1 :(得分:25)

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

<强>更新

Facebook现在改变了一些事情,只需转到应用程序设置,在网站网址中添加http: //localhost并将应用程序域空置

答案 2 :(得分:20)

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

app域

   http://localhost

网站网址

   http://localhost:8082/

答案 3 :(得分:19)

注意:截至2012年,Facebook允许将“localhost”注册为返回网址。您可能还需要其他提供程序(即Microsoft one)的类似解决方法。

如果您需要在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为我(在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)来覆盖主机 - Using Fiddler with IIS7 Express

答案 4 :(得分:9)

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

答案 5 :(得分:9)

使用新的开发中心现在更容易:

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

答案 6 :(得分:8)

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

答案 7 :(得分:7)

在您应用的基本设置中{https://developers.facebook.com/apps) 在设置 - >基本 - &gt;下选择您的应用与Facebook集成的方式......

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

答案 8 :(得分:5)

你必须选择Facebook产品&#39; facebook登录&#39;并启用 客户端OAuth登录,&#39; Web OAuth登录&#39;和&#39;嵌入式浏览器OAuth登录&#39; 那么即使你给localhost url它也会工作enter image description here

答案 9 :(得分:5)

有!我的解决方案在您创建应用程序时有效,但您想在您的网站上使用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使用主机文件的方法,这个技巧应该可行。

答案 10 :(得分:3)

我认为您应该能够使用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/
  4. 希望这有帮助。

答案 11 :(得分:3)

试试这个---

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

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

2 - 单击屏幕左侧的“设置”按钮。

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

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

5 - 输入您的URL(localhost在这里工作)。

6 - 在“应用程序域”文本输入中,添加与URL中的域匹配的域。

7 - 保存您的设置。

答案 12 :(得分:2)

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

答案 13 :(得分:2)

假设您已将应用注册为:

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" />

答案 14 :(得分:2)

即使在HTTPS要求之后,这也可以在2018年6月生效。看来测试应用程序不需要https:

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

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

答案 15 :(得分:1)

app domain : localhost

site URL : http://localhost:4440/

使用新的UI为我工作。

答案 16 :(得分:1)

试试这个:

  

https://ngrok.com/

它为我工作......

答案 17 :(得分:0)

我的解决方案在localhost中工作正常..... 对于网站网址,请使用http://localhost/ 对于App域使用localhost/folder_name 休息一切都一样.......它工作正常 (尽管它在App Domain中显示了红色标志..App工作正常)

答案 18 :(得分:0)

很容易转到Facebook登录标签下的应用仪表板单击设置 然后选择“强制HTTPs否,保存设置enter image description here

答案 19 :(得分:0)

该应用程序将在localhost:3000上正常运行,您只需指定应用程序处于生产模式时将在其上运行的https地址即可。
选项2是提供url或您的heroku网站,可让您在生产模式下使用示例应用程序。

enter image description here

答案 20 :(得分:0)

最新更新: 如果要在开发中进行测试,则无需提供任何URL。您可以将字段留空。确保您的应用处于开发模式。如果无法关闭,请关闭状态。

无需提供网站网址,应用程序域或有效的重定向oauth uri。

enter image description here