Facebook开发在localhost

Abh*_*hek 173 facebook localhost

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

Eri*_* Hu 244

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

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

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

在此输入图像描述

  • 在您的应用程序初始化程序中,输入代码来检测环境
    • 示例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
      

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

  • 这还是你的情况吗?我似乎无法添加localhost,或127.0.0.1:5000或任何类似于我的应用程序域的Facebook. (14认同)
  • + 1ed这很奇怪!人们说你不能将localhost添加为你的app url.但它只对我有用.谢谢! (3认同)

sta*_*lin 26

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

更新

Facebook现在改变了一些东西,只需转到应用程序设置,在网站URL中添加http: //localhost并保留App Domain为空

  • 这不再起作用,你得到的错误无法添加顶级域名 (10认同)

小智 20

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

应用域名

   http://localhost
Run Code Online (Sandbox Code Playgroud)

网站网址

   http://localhost:8082/
Run Code Online (Sandbox Code Playgroud)


Ale*_*kov 19

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

如果您需要在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";
}
Run Code Online (Sandbox Code Playgroud)

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


Sud*_*ha 9

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


JSV*_*JSV 9

通过新的开发中心,现在更容易:

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


Mar*_* T. 8

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


Car*_*lin 7

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

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


Mar*_*inL 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使用hosts文件的方法,这个技巧应该可行.


Abh*_*waj 5

您必须选择Facebook产品'facebook登录'并启用客户端OAuth登录,'Web OAuth登录'和'嵌入式浏览器OAuth登录'然后即使您提供localhost网址它将工作 在此输入图像描述

  • Facebook 现在需要 https 进行回调。本地主机不支持 https。 (2认同)

Jar*_*red 5

即使在 HTTPS 要求之后,这也适用于 2018 年 6 月。似乎测试应用程序不需要 https:

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

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