Facebook的本地主机开发

只是想知道是否有任何方式可以在本地开发Facebook应用程序。

编辑:2-15-2012这是如何使用本地主机网站的FBauthentication。

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

  • https://developers.facebook.com/apps上创build一个新的应用程序;
  • (New 2/15/2012)点击“select你的应用程序与Facebook的集成方式”下的Websitecheckbox(在最近的Facebook版本中,你可以在设置>基本>添加平台 – 然后select网站)
  • 站点URL字段( 不是“应用程序域”字段 )设置为http://www.localhost:3000 (此地址适用于Ruby on Rails,根据需要更改)

在这里输入图像描述

  • 在您的应用程序初始化程序中,input代码来检测环境
    • 示例Rails 3代码
      如果Rails.env ==“发展”||  Rails.env =='test'
         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”
        结束
      结束
      

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

当然你也可以在你的app_domain中添加url localhost(没有“http”),然后添加你的site_url http://localhost (使用http)

更新

Facebook现在改变了一些东西,只要去应用程序设置,并在网站的url只需添加http: //localhost并保留应用程序域空

注意:截至2012年,Facebook允许将“localhost”注册为返回url。 您仍然可能需要类似的解决方法为其他供应商(即微软之一)。

如果您需要在Facebook上注册的真实域名(如my.really.own.domain.com),您可以在本地将请求redirect到您的机器。 在任何操作系统上最简单的方法是更改​​“主机”文件以将域映射到127.0.0.1(请参阅http://technet.microsoft.com/zh-cn/library/bb727005.aspx#EDAA和https:/ /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"; } 

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

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

应用程序域

  http://localhost 

网站url

  http://localhost:8082/ 

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

新的开发中心现在变得更加简单:

1)将应用程序域留空。
2)点击添加平台
3)网站url应该等于您的本地主机的完整path。
4)保存更改

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

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

使用“网站url”和“移动网站url”分别保存您的制作和开发url。 这两个网站将被允许进行身份validation。 我只是使用Facebook进行身份validation,所以我不需要任何移动网站redirectfunction。 我在testing身份validation时,通常会将“移动网站url”更改为我的“localhost:12345”网站,然后在完成后将其设置恢复正​​常。

有 ! 我的解决scheme在您创build应用程序时起作用,但您希望在您的网站上使用Facebook身份validation。 当你想创build一个集成到FB页面的应用程序时,下面的解决scheme是不需要的。

问题是你不能把“本地主机”作为一个域在你的应用程序的Facebookconfiguration页面。 安全原因?

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

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

然后你必须清除你的DNScaching。 在OSX上:在terminal中键入dscacheutil -flushcache 。 最后,回到在线Facebook开发者网站,在你的应用程序的configuration页面,你可以添加域“dev.yourdomain.com”。

如果你使用一个程序,如Mamp,Easyphp或其他,确保Apache的端口是80。

此解决scheme应该适用于Windows,因为它也有一个主机文件。 不过,据我记得,Windows 7不再使用这个文件,但是这个技巧应该可以工作,如果你find一种方法来强制Windows使用主机文件。

我认为你应该能够使用Visual Studio开发Web服务器开发应用程序:在http://www.facebook.com/developers/上启动一个新的FaceBook应用程序。; 然后将站点Url和canvasurl的设置设置为正在运行的网站实例,例如: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/

希望这可以帮助。

假设你已经注册你的应用程序为:

 app.domain.com 

您只需要通过添加来修改/ etc / hosts文件

 127.0.0.1 dev01.app.domain.com 

然后,修改你的apacheconfiguration

 ServerName dev01.app.domain.com 

并重新启动Apache。

您需要将您的url放在一个variables中,以便在某些调用中将其用作XML参数:

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

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

尝试这个 – –

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

1 – 点击应用程序,然后select您的应用程序。

2 – 点击屏幕左侧的设置button。

3 – 在基本设置中,单击设置configuration下的添加平台button。

4 – 在平台对话框中select网站。

5 – input您的URL(本地工作在这里)。

6 – 在“应用域名”文本input框中,添加与URL中的域匹配的域。

7 – 保存您的设置。

我的解决scheme在localhost工作正常…..对于网站URL使用http://localhost/和应用程序域使用localhost/folder_namerest一切都是一样的…….它工作正常(虽然它显示在应用程序的红旗域名应用程序工作正常)

app domain : localhost

site URL : http://localhost:4440/

为新的UI工作。

尝试这个:

https://ngrok.com/

它为我工作…

您必须selectFacebook产品的“Facebooklogin”,并启用客户端OAuthlogin,“Web OAuthlogin”和“embedded式浏览器OAuthlogin”,即使你给本地主机的URL它将工作 在这里输入图像描述