Facebook的本地主机开发
只是想知道是否有任何方式可以在本地开发Facebook应用程序。
编辑:2-15-2012这是如何使用本地主机网站的FBauthentication。
我发现它更可扩展性和方便,build立第二个Facebook应用程序。 如果我正在构buildMyApp,那么我将创build第二个名为MyApp-dev的应用程序。
- 在https://developers.facebook.com/apps上创build一个新的应用程序;
- (New 2/15/2012)点击“select你的应用程序与Facebook的集成方式”下的
Website
checkbox(在最近的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” 结束 结束
- 示例Rails 3代码
我更喜欢这种方法,因为一旦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:
- http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
- http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html ,
- 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_name
rest一切都是一样的…….它工作正常(虽然它显示在应用程序的红旗域名应用程序工作正常)
app domain : localhost
site URL : http://localhost:4440/
为新的UI工作。
您必须selectFacebook产品的“Facebooklogin”,并启用客户端OAuthlogin,“Web OAuthlogin”和“embedded式浏览器OAuthlogin”,即使你给本地主机的URL它将工作