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位于该页面的第一个框中。)
- 转到http://developers.facebook.com上的应用程序设置页面;
- 点击左上angular(应用程序名称旁边的下拉箭头),然后点击“创buildtesting应用程序”并为其命名
- 在新的testing应用程序的“设置”>“基本”中,将“应用程序域”设置为“localhost”
- 还要设置网站的url为“ http:// localhost:8888 ”(或任何您使用的端口)。
- 重要提示:这个应用程序有不同的应用程序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
我做了以下几点:
- 创build应用程序
- 现在从箭头下拉列表中select“+创buildtesting应用程序”(左上angular)。
- 将
localhost
添加到应用程序域
- 将
http://localhost:3000/
添加到站点URL通过select“+添加平台”
到目前为止,我已经遵循了之前提交的所有答案,但没有成功。
所以…
-
在左侧菜单中,select“添加产品”
-
添加“Facebooklogin”
您将看到一个工作stream程卡罗素,默认域为http://localhost:3000/
,点击“继续”直到结束。
-
从产品菜单中select“Facebooklogin>设置”。
-
input您的Firebase OAuthredirectURI(在您的Firebase控制台https://console.firebase.google.com中启用Facebooklogin时find,下例);
- 粘贴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