如何将localhost:3000添加到Facebook App进行开发

时间:2014-01-03 18:42:30

标签: ruby-on-rails facebook ruby-on-rails-4 omniauth

我正在开发一个Rails 4应用程序。在我的笔记本电脑上,开发工作在localhost:3000完成。该网站的实际域名为roomidex.com

如何设置Facebook应用程序,使其适用于生产和开发?

以下是当前配置:

App Domains: roomidex.com

Website With Facebook Login: 
Site URL: http://www.roomidex.com

当我尝试在localhost:3000上进行Facebook登录时,我发现这并不奇怪:

{
   "error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException",
      "code": 191
   }
}

8 个答案:

答案 0 :(得分:59)

在Facebook App页面上,单击“编辑应用程序”,然后单击左侧导航中的“高级”。然后,对于“有效的OAuth重定向URI”,添加http://localhost:3000 ...或者您想要接受的重定向的任何内容。

答案 1 :(得分:7)

您可以创建一个连接到主应用的测试应用。在主应用程序的仪表板或设置页面上。向下滚动,您将看到"测试应用"在页面左侧向下的菜单中。测试应用程序将继承主应用程序的设置,但它将永久处于开发模式,并且它将拥有自己的ID。

有关测试应用的更多信息: https://developers.facebook.com/docs/apps/test-apps/

设置应用于localhost的应用程序的协议已更改。在设置测试应用程序之后,这解释了将其设置为在localhost上运行的步骤:

https://stackoverflow.com/a/24253054/2803458

答案 2 :(得分:4)

您的错误是

  

应用程序中不允许使用localhost URL

我知道,FB并没有给出解释,但在那些时刻做了什么,然而,就我而言,我找到了解决方法。

基本上,您需要在应用中将“locahost网址”列入“白名单”

以下是您的目标

  1. 转到应用编辑/摘要页面
  2. 在第四个字段 应用领域 中,您应该已经有roomidex.com,因此请添加其他地址localhost
  3. 上面提到的网址仅有效,如果每个网址都放在标签中,您设置的位置,app integrates with Facebook(Facebook登录网站,Facebook上的应用程序,移动网络,......)
  4. 我这样做:我将我的工作网址 roomidex.com 放入Website with facebook login,将我的测试 localhost 网址放入{ {1}}或App on facebook

答案 3 :(得分:1)

2015年6月

转到我的应用>设置>基本

App Domains

  • 本地主机

网站

不幸的是,它没有使用端口80或没有任何端口。

答案 4 :(得分:0)

Adding localhost to the Valid OAuth redirect URIs in the test app did not work for me but adding 127.0.0.1 did.

答案 5 :(得分:0)

Facebook现在要求“有效的OAuth重定向URI”为https。

要在本地使用https(localhost:3000),我使用了[ngrok] [1],它允许您通过提供隧道来使用https。要做到这一点:

  1. 我去了他们的网站并下载了他们的程序
  2. 我解压缩了该程序的文件
  3. 在我的控制台中,我进入了ngrok被解压缩到的目录,并在我的Windows机器上输入了'grok http 3000',其他人可能会使用'./grok http 3000'
  4. 输入后,ngrok提供了https地址,我将其放入Facebook的Valid OAuth Redirect URIs字段
  5. 然后我启动了我的服务器并能够使用该https地址而不是localhost:3000
  6. 访问它

答案 6 :(得分:-1)

只需创建两个应用程序。

一个用于测试,一个用于发布。您无法为应用提供单独的网址配置。

答案 7 :(得分:-4)

只需使用指向localhost的域编辑您的hosts文件,它就可以正常工作。