Facebook应用程序:本地主机不再作为应用程序域

我一直在使用Rails和jQuery为Facebook写游戏。 自从我开始使用Facebook的JavaScript SDK,使用本地主机作为应用程序域似乎工作得很好。 我能够在本地和Heroku上testing我的游戏。

在过去的一天,Facebook似乎已经对他们的开发者界面做了一个大的更新。 现在,如果我将本地主机添加为应用程序域,它给了我以下错误:

这必须来自Canvas URL,安全canvasURL,站点URL,移动站点URL,页面标签URL或安全页面标签URL。 检查并更正以下域:localhost

我的游戏现在也不能在本地工作,并且当Javascript SDKlogin用户时出现错误:

API错误代码:191 API错误说明:指定的URL不属于应用程序错误消息:无效的redirect_uri:给定的URL不被应用程序configuration允许。

当我部署我的游戏时,这不会发生,因为herokuapp.com被认为是有效的应用程序域。

如果我不能再使用本地主机或127.0.0.1,我该如何开发和testing我的游戏?

协议似乎不断变化,今天接受的答案不适合我。 如果它帮助其他search者,这是什么为我工作:

  • 所有更改都在“基本”选项卡下的“设置”页面上进行

1.)在第一个选项框中,点击“+添加平台”,select“网站”(或任何适合您的应用程序的内容)。

2.)在刚刚添加的网站的框中: url: http://localhost:3000/

3.)在上面的那个框(设置=>基本): 应用程序域: localhost

4.)在右下angular – 点击“保存更改”

5.)确保你的应用程序ID被复制并正确地粘贴到你的代码中。 (如果您再次需要,该ID位于该页面的第一个框中。)

  1. 转到http://developers.facebook.com上的应用程序设置页面;
  2. 点击左上angular(应用程序名称旁边的下拉箭头),然后点击“创buildtesting应用程序”并为其命名
  3. 在新的testing应用程序的“设置”>“基本”中,将“应用程序域”设置为“localhost”
  4. 还要设置网站的url为“ http:// localhost:8888 ”(或任何您使用的端口)。
  5. 重要提示:这个应用程序有不同的应用程序ID和应用程序的秘密, 因此,最后一步:确保使用testing应用程序的应用程序ID和应用程序密码来更新位于本地主机上的代码。 相反,在服务器上的代码应该使用主App的ID和Secret。

您仍然可以testing您的应用程序,而无需在像heroku这样的远程服务器上进行部署。 诀窍是这样更新etc/hosts文件:

 127.0.0.1 mydomain.com 

然后在Facebook应用程序的设置中,键入[ http://] mydomain.com,不带“[”和“]”

这对我来说很有效

这是错误的方式。 您必须在应用程序设置中使用“testing”标签创buildtesting应用 然后,您可以将您的开发阶段url(例如localhost)input到您的应用程序中。

只要添加本地主机作为您的canvasurl或移动网站的url,这将允许您在您的应用程序域设置同时具有localhost和herokuapp.com。 然后,一旦你的应用程序在生产中,只需删除它。

尝试使用与端口的url,例如

  http://localhost:8000/ 

我遇到了同样的问题,现在就发现了这个解决scheme。

使用Firebase的解决scheme

为了得到这个工作在localhost ,端口3000我做了以下几点:

  1. 创build应用程序

创建测试应用程序

  1. 现在从箭头下拉列表中select“+创buildtesting应用程序”(左上angular)。

在这里输入图像说明

  1. localhost添加到应用程序域

在这里输入图像说明

  1. http://localhost:3000/添加到站点URL通过select“+添加平台”

在这里输入图像说明

到目前为止,我已经遵循了之前提交的所有答案,但没有成功。

所以…

  1. 在左侧菜单中,select“添加产品”

  2. 添加“Facebooklogin”

您将看到一个工作stream程卡罗素,默认域为http://localhost:3000/ ,点击“继续”直到结束。

  1. 从产品菜单中select“Facebooklogin>设置”。

  2. input您的Firebase OAuthredirectURI(在您的Firebase控制台https://console.firebase.google.com中启用Facebooklogin时find,下例);

在这里输入图像说明

  1. 粘贴URI和保存。

在这里输入图像说明

完成。

对于每个在2017年都很烦恼的人来说。界面又改变了。 我想评论这个答案,但我没有足够的声誉。 您的应用程序的本地主机url现在必须复制到三个地方。 目前(2017年10月26日)的顺序是:

1.)点击左侧菜单中的“设置”。

2.)在第一个选项框下的中心,点击“+添加平台”,select“网站”(或任何适合您的应用程序)。

3.)在刚刚添加的网站框中,复制localhost网站的url(fe http:// localhost:3000 / )

4.)在上面的框中,“应用程序域”复制相同的URL

5.)在右下angular – 点击“保存更改”

6.)在“产品”下的左侧菜单中点击“Facebooklogin”(如果不可用,则通过“+添加产品”添加)

7.)你现在在Facebooklogin设置。 将相同的url复制到“有效的OAuthredirectURI”

这应该工作。

这在heroku中适用于我,localhost的东西不起作用(对我来说)。 我希望它有帮助

1.)在第一个选项框中,点击“+添加平台”,select“网站”(或任何适合您的应用程序的内容)。

2.)在刚刚添加的网站的框中:网站url: http ://MYAPP.herokuapp.com/(将MYAPPreplace为您的应用程序的名称)

3.)在上面的那个框(设置=>基本):应用程序域:MYAPP.herokuapp.com(用您的应用程序的名称replaceMYAPP)

4.)在右下angular – 点击“保存更改”

只是一些其他可能像我一样挣扎着的人。 我一直没有能够得到这个“testing”应用程序的工作。 使用我的实际应用程序设置(并简单地添加

 "http://localhost:3000/" 

到我的canvasurl)按照其他人的build议。 看来testing应用程序不等于实际的应用程序。

对我来说,它是这样工作的:

configurationFacebook应用程序仪表板:

*在“基本”选项卡上:

1)离开应用程序域为空。

2)删除任何平台。 含义:没有网站没有canvas平台。 (所以没有填写网站的URL字段)

*在“高级”选项卡上:

3)我input了有效的OAuthredirectURI:

 http://localhost/myappfolder/redirect.php 

4)关于我的代码,insdie我的c:/xampp/htdocs/localhost/myappfolder/index.php(这个文件使loginURL):

 $helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php'); 

在redirect.php文件里面:

 $helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php'); 

我有一个会议! 最后! 没有必要把自己挂在最后:P