Ruby on rails 如何正确设置Rails应用的Facebook应用页面?
我有一个非常常见的问题(这很常见,必须有一个标签): 应用程序配置不允许给定URL。示例:应用程序的设置不允许一个或多个给定URL。它必须与网站URL或画布URL匹配,或者域必须是应用程序域之一的子域 在以下情况下会发生这种情况-我编写rspec/capybara规范。其中一些规范测试某些链接是否正确重定向。问题中的链接是myapp的子域:。(我正在使用该服务,但我认为这与此无关) 因此,我有以下配置:Ruby on rails 如何正确设置Rails应用的Facebook应用页面?,ruby-on-rails,capybara,phantomjs,facebook-login,poltergeist,Ruby On Rails,Capybara,Phantomjs,Facebook Login,Poltergeist,我有一个非常常见的问题(这很常见,必须有一个标签): 应用程序配置不允许给定URL。示例:应用程序的设置不允许一个或多个给定URL。它必须与网站URL或画布URL匹配,或者域必须是应用程序域之一的子域 在以下情况下会发生这种情况-我编写rspec/capybara规范。其中一些规范测试某些链接是否正确重定向。问题中的链接是myapp的子域:。(我正在使用该服务,但我认为这与此无关) 因此,我有以下配置: 生产应用程序正在运行 我在http://localhost:3000/ 我已经这样设置了测
- 生产应用程序正在运行
- 我在
http://localhost:3000/
- 我已经这样设置了测试端口:
Capybara.server\u port=42082
scenario 'is redirected to feedback page in a new tab after clicking on feedback button' do
within('.menu-wrapper') { click_on I18n.t('shared.header.help') }
new_tab = page.driver.window_handles.last
page.within_window(new_tab) do
expect(current_url).to eq 'http://support.myapp.com/'
end
end
测试通过了,但在控制台中我得到了消息,如开头所述。在我的Facebook应用程序页面上,据我阅读的许多SOs所知,与我的问题相关的字段有(我还提供了它们的当前状态):
在“设置/基本”选项卡下:
- 应用程序域-空。我试图将
放在这里,但它抱怨这是一个顶级域。因此,我尝试了其他几个版本,如localhost
或localhost.com
。执行此操作时,我将主机文件编辑为myapp.com
127.0.0.1 localhost.com
- 画布URL-
http://localhost:3000/?origin=facebook&utm_campaign=fb&utm_source=fb
- 安全画布URL-
https://localhost:3000/?origin=facebook&utm_campaign=fb&utm_source=fb
- 站点URL-我根本没有这个字段。对于各种测试,我通过单击“+添加平台”=>网站“启用”了它
- 有效的OAuth重定向URI-空
- 在测试过程中,导致问题的url是
或。不幸的是,错误消息没有告诉我这两个问题中的哪一个导致了问题http://localhost:42082
- 我尝试使用以下值使用localhost:42082,但不起作用:
- 应用程序域:
-如上所述,我还编辑了我的主机文件李>localhost.com
- 画布URL/安全画布URL-将端口从3000更改为42082
- 网站URL:
http://localhost.com:42082/
- 有效的OAuth重定向URI-
http://localhost:42082/
- 应用程序域:
- 我怀疑问题实际上来自于这不仅是一个支持页面,而且是一个反馈页面。有一个选项可以投票选择新的应用程序功能。如果我之前未在本地登录我的应用程序而访问该链接,并单击投票按钮,我会得到如下字段:
我应该在我的Facebook应用程序页面中使用什么值来获取给定的URL消息?您还有其他的故障排除方法吗?在测试中依赖外部服务是一种不好的做法。相反,您应该使用webmock或similarI模拟此类请求。我无法理解您是如何使用
localhost
作为服务器URL链接到support.myapp.com
。1.在Facebook上购买并授权testmyapp.com,2。使用/etc/hosts
将testmyapp.com重定向到localhost
,3。根据经验编写测试。@MikDiet:当然,这是一个验收测试,检查应用程序是否在真实环境中工作,没有模拟或存根,这难道不合理吗?