我在我的网站上有一个 Facebook 登录,目前正在我的开发环境中工作。我在 Facebook 应用程序设置中指定的“站点 URL”是:
http://127.0.0.1.
我即将将其推广到生产环境中,并将“站点 URL”更改为“ http://mysite.com ”,但这将导致我的开发设置无法登录 Facebook。我想我可以创建第二个 facebook 应用程序。我看到这个问题以略有不同的方式提出,但没有明确的答案。
我在我的网站上有一个 Facebook 登录,目前正在我的开发环境中工作。我在 Facebook 应用程序设置中指定的“站点 URL”是:
http://127.0.0.1.
我即将将其推广到生产环境中,并将“站点 URL”更改为“ http://mysite.com ”,但这将导致我的开发设置无法登录 Facebook。我想我可以创建第二个 facebook 应用程序。我看到这个问题以略有不同的方式提出,但没有明确的答案。
我通常将 mysite.com 放在 facebook 设置中,然后更改我的主机文件,以便将 dev.mysite.com 之类的内容重定向到 localhost
在 FB Dev - 将您的应用程序域标记为“mysite.com”,它将匹配 *.mysite.com
然后在你的主机文件中(谷歌如何在你的环境中编辑它)添加 127.0.0.1 localhost dev.mysite.com
然后在您的浏览器中,转到 dev.mysite.com,因为 fb 是在根目录上设置的,所以应该一切都好!
您只需在 Facebook 中添加一个测试应用程序。
转到developers.facebook.com 并单击“我的应用程序”选项卡并选择您正在使用的应用程序。然后,在左栏中(在仪表板、设置、状态和审查等下方)单击“测试应用程序”。从那里,您可以创建应用程序的副本。(有关更多详细信息,请参阅https://developers.facebook.com/docs/apps/test-apps。)
现在您将拥有两个应用程序:MyMainApp 和 MyMainApp - Test1。每个应用程序将对应于相同的代码库,但您可以在“设置”下为每个应用程序设置不同的“站点 URL”。例如,对于 MyMainApp,您的站点 URL 可能是“myMainApp.azurewebsites.net”,而对于“MyMainApp - Test1”,您的站点 URL 可能是“localhost:3000”
重要提示:每个应用程序(用于生产和测试)都有自己唯一的应用程序 ID。您需要确保在 Facebook API 中使用正确的 ID。我正在为我的登录页面执行以下操作:
js.src = '//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=' + facebookAppId + '&version=v2.0';
我正在使用 nodejs/express,我正在通过配置设置正确的 facebookAppId。你可以做一些简单的事情,比如:
if (app.get('env') === 'development') {
// set facebookAppId to the test App Id
}
else {
// set facebookAppId to the prod App Id
}
现在,您可以使用 localhost:3000 访问您的测试站点,并且您可以使用 myMainSite.azurewebsites.net 访问您的生产站点,而无需修改您的主机文件。