Facebook App:localhost不再作为app域工作

Rav*_*ine 92 javascript facebook ruby-on-rails heroku

我一直在使用Rails和jQuery为Facebook编写游戏.自从我开始使用Facebook Javascript SDK以来,使用localhost作为应用程序域似乎工作正常.我能够在本地和Heroku上测试我的游戏.

在过去的一天,似乎Facebook已经对他们的开发者UI进行了重大更新.现在,如果我将localhost添加为app域,则会出现以下错误:

这必须来自Canvas URL,Secure Canvas URL,Site URL,Mobile Site URL,Page Tab URL或Secure Page Tab URL.检查并更正以下域:localhost

我的游戏现在也无法在本地运行,当Javascript SDK登录用户时出现错误:

API错误代码:191 API错误说明:指定的URL不归应用程序所有错误消息:无效的redirect_uri:应用程序配置不允许使用给定的URL.

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

如果我不能再使用localhost或127.0.0.1,我应该如何开发和测试我的游戏?

Tay*_*714 238

协议似乎在不断变化,接受的答案今天对我不起作用.万一它可以帮助其他搜索者,这对我有用:

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

1.)在第一个选项框下的中心,单击"+添加平台"并选择"网站"(或适用于您的应用的任何内容).

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

3.)在上面的框中(Settings => Basic): App Domain: localhost

4.)在右下角 - 点击"保存更改"

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

  • 请注意,您的网址也必须列在__Settings>高级>有效OAuth重定向URIs__中. (24认同)
  • 这似乎不再起作用了:(我得到_URL已阻止:此重定向失败,因为重定向URI未在应用的客户端OAuth设置中列入白名单.请确保启用客户端和Web OAuth登录并将所有应用域添加为有效OAuth重定向URI ._ (3认同)
  • 这个答案不再正确。您不能在基本设置下的应用程序域框中使用 localhost (3认同)
  • 你不能再使用'http'了.它必须是'https'. (2认同)

小智 30

  1. 转到http://developers.facebook.com上的应用程序设置页面
  2. 单击左上角的下拉箭头(应用程序名称旁边),然后单击"创建测试应用程序"并为其命名
  3. 在新的测试应用程序的设置>基本设置中将应用程序域设置为"localhost"
  4. 同时将网站站点URL设置为" http:// localhost:8888 "(或您正在使用的任何端口).
  5. 重要提示:此应用程序与您的在线应用程序具有不同的App ID和App Secret.因此,最后一步:确保使用Test App的App ID和App Secret更新localhost中的代码.相反,位于实时服务器中的代码应该使用主App的ID和Secret.


Pat*_*ick 13

您仍然可以测试您的应用程序,而无需将其部署在像heroku这样的远程服务器上.诀窍是以etc/hosts这种方式更新文件:

127.0.0.1 mydomain.com
Run Code Online (Sandbox Code Playgroud)

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

它以这种方式为我工作


Imr*_*e_G 9

对于每个在2017年烦恼的人.界面再次改变.我想对此回答这个问题,但我没有足够的声誉.您的应用的localhost网址现在必须复制到三个地方.目前,(2017年10月26日)的顺序是:

1.)单击左侧菜单中的"设置".

2.)在第一个选项框下方的中心,单击"+添加平台"并选择"网站"(或适用于您的应用的任何内容).

3.)在网站出现的框中,你刚刚添加了你的localhost网站url(fe http:// localhost:3000 /)

4.)在上面的框中,"App Domain"复制相同的URL

5.)在右下角 - 点击"保存更改"

6.)在"产品"下的左侧菜单中,单击"Facebook登录"(如果不可用,则通过"+添加产品"添加)

7.)您现在处于Facebook登录设置中.将相同的网址复制到"有效OAuth重定向URI"字段

这应该工作.

  • 请注意,Facebook 不再允许“http”作为有效的 OAuth 重定向 URI (2认同)

rar*_*ass 5

只需添加localhost作为您的画布URL或移动站点URL,这将允许您在App Domain设置中同时拥有localhost和herokuapp.com.然后,一旦您的应用程序投入生产,只需删除它.


小智 5

这是错误的方式.您必须使用应用程序设置中的"测试"选项卡创建测试应用 然后,您可以在应用程序中输入开发阶段URL(例如localhost).


Mat*_*ebb 5

使用Firebase的解决方案

为了使这个工作localhost,端口3000我做了以下:

  1. 创建应用程序

创建测试应用程序

  1. 现在从箭头下拉列表(左上角)选择"+ Create Test App".

在此输入图像描述

  1. 添加localhost到应用程序域

在此输入图像描述

  1. http://localhost:3000/选择"+添加平台" 添加到站点URL

在此输入图像描述

到目前为止,我已经按照此处提交的所有答案进行了跟踪,但没有任何效果.

所以...

  1. 在左侧菜单中,选择"添加产品"

  2. 添加"Facebook登录"

您将看到一个带有默认域名的工作流程转盘http://localhost:3000/,点击"继续"直到结束.

  1. 从产品菜单中选择"Facebook登录>设置".

  2. 输入您的Firebase OAuth重定向URI(在您的firebase控制台中启用Facebook登录时找到https://console.firebase.google.com,如下所示)

在此输入图像描述

  1. 粘贴URI并保存.

在此输入图像描述

完成.