开发和testingFacebook应用程序
通常我会在主干上开发自己的网站,然后将更改合并到testing分支,然后放到“testing”网站上,最后将其合并到活动分支上,并放到实时网站上。
使用Facebook应用程序有点棘手。 由于您无法通过普通的网页浏览器查看Facebook应用程序(必须通过Facebook服务器),您不能轻易地向每个开发人员提供自己的网站版本以便进行testing。
我还没有遇到任何有关开发和testingFacebook应用程序的最佳方法,同时还有一个稳定的用户可以使用的现场网站。 我的问题是,组织开发和testingFacebook应用程序的最佳做法是什么?
我和我的合作伙伴做到这一点的方式是我们各自制作了自己的私人Facebook应用程序,这些应用程序指向我们所在的IP地址。 由于我们在同一个地方工作,我们每个挑选一个不同的端口,并让我们的路由器将该端口转发到我们的本地IP地址。 刷新页面的速度有点慢,但效果很好。
尝试更新您的主机文件(for windows users @ c:\windows\System32\Drivers\etc\hosts)
,并将所有请求从您的活动域路由回您的机器。
所以127.0.0.1 mywebappthatusesfacebook.com.
然后确保您的应用程序在您的Web服务器的根目录下运行。 @ http:// localhost /然后在您的浏览器中转到mywebappthatusesusesfacebook.com,它应该redirect到您的本地机器。 Facebook不会知道其中的差别。 希望这可以帮助
您将不得不添加中继和testing版本作为不同的应用程序,并使用testing帐户进行testing 。 您也可以使用单个应用程序,并在周期之间切换其目标URL。
testingFB应用程序仍然是一个相当原始的过程。
我通常设置一个testing应用程序,它是使用SSH隧道指向我的开发服务器的FB开发环境内的生产设置的完整副本。 您可以在FB中设置尽可能多的应用程序 – 我通常有一个开发应用程序,一个应用程序和生产。 暂存和生产都在“活”服务器上,而不是SSH隧道。
在您的应用程序中,您可以使用任何语言/框架/服务器工具来随意切换基于服务器的FBconfiguration。 在Rails中,Facebooker gem实际上已经构build了对不同FBconfiguration的支持。
一旦完成了这一切,不幸的是,testing仍然是在FB本身内运行应用程序的问题。 我使用Selenium尽可能多地自动化。
最好的方法来做到这一点:
从“基本信息”中删除“应用程序域”
将网站的“网站url”设置为“http:// localhost /”。
那很简单。
(这只适用于没有与testing环境并行运行的实时系统的情况,在这种情况下,让自己另一个键)。
我们把它设置得很像托比。 每个开发者的一系列configuration文件,包含Facebook APP ID信息(每个开发者都有一个不同的应用程序),独立的应用程序所在的页面,git忽略configuration文件。 我们是使用Code Igniter的LAMP,和Rails类似,我们可以在1个文件中设置环境,这个文件指向带有Facebook常量的configuration。
分支出Selenium,使用unit testing进行模型testing。
对于本地testing,我们只是使用与服务器不同的应用程序。 在我们的例子中,Canvas-URL被设置为localhost.local:8000。
你只需要确保当你使用Facebook连接,你inputlocalhost.local到浏览器的地址字段,而不只是localhost。
对于testingcanvas或标签应用程序,如果您使用Firefox的“在新选项卡中打开iframe”命令,速度会更快。 这样来自Facebook的会话和cookie被保留下来。
另一个解决scheme是NGROK
它打开一个公共隧道到您的本地应用程序
通过简单的键入我的rails应用程序的例子
./ngrok 3000
我明白了
http://630066fe.ngrok.com -> 127.0.0.1:3000