Facebook 应用程序 - 本地主机和强制 https 问题
Posted
技术标签:
【中文标题】Facebook 应用程序 - 本地主机和强制 https 问题【英文标题】:Facebook App - localhost & force https problem 【发布时间】:2021-06-25 03:05:55 【问题描述】:我知道的另一个 Facebook 应用/API 帖子,但请仔细阅读。
为了更清楚起见,我将在此处补充说,我们目前是 2021 年,即 3 月 29 日,他们的 API 在过去几个月中发生了很大变化(并且可能也会发生变化),因此 StackO 上的大多数答案都是'不再工作了。
此外,IMO 他们的文档还没有完全更新到当前版本,并且有一些不再存在的东西(例如用于 ex 的 Dev/Live 模式)。
在确保我的应用可以通过更改与我的本地主机一起工作之后:
Settings -> Basic -> App Domains -> 'localhost'
Settings -> Basic -> Add platform -> Website -> 'http://localhost:8000/'
)
Add Product -> Facebook Login -> leave everything empty
确保使用localhost
而不是127.0.0.1
运行我的本地主机。
Facebook javascript SDK 似乎无法从 http
网址运行。
由于我在本地主机上工作(所以不在 https 中),这很烦人。在检查了 FB 文档和 Facebook login
设置中的一些工具提示后,似乎 localhost 应该 在没有启用 https 的情况下工作。如果这还不够:Enforce HTTPS
按钮显示为灰色且无法再关闭。
我也尝试在Valid OAuth Redirect URIs
中输入一些内容,但字段/工具提示不允许您输入http://localhost:8000/
:
http://localhost 重定向仅在开发模式下自动允许,无需在此处添加。
如上所述,不再有开发模式之类的东西,或者至少没有按钮或任何东西可以改变甚至在他们的新界面上看到模式。
有没有人设法让他的本地主机与 JS SDK 一起工作?
确实很感谢 Ngrok 和其他答案,但我想先知道在这个问题上是否有“真正的”解决方案(在 FB 方面)(“还没有”是一个可以接受的答案,因为它可能会为其他人节省大量时间)。 非常感谢!
编辑:开发/实时模式的区别仍然存在,但仅适用于个人开发者开发的应用。对于商业应用程序,它们已被访问级别所取代。 (见评论,@CBroe) 但是,我尝试过不做生意,但也没有用。
【问题讨论】:
开发/直播模式的区别仍然存在,但仅限于个人开发者开发的应用。对于商业应用,它们已被访问级别所取代。 @CBroe 我明白了,我确实在商业应用程序中。但是,我也尝试使用我自己的 FB 应用程序,看到开发/实时模式的按钮,但它仍然无法与 http 一起使用。我会更具体地编辑我的帖子,谢谢! 现在有一个叫做创建测试应用程序的东西查看***.com/a/65286193/9802012 【参考方案1】:在 Facebook 方面似乎没有任何解决方案可以解决我的问题,JavaScript 错误清楚地表明:
登录按钮插件不再适用于 http 页面。请更新您的网站以使用 https 登录 Facebook。
由于错误中的链接指向博客文章(而不是文档),并且由于我在 FB 文档中没有找到与该问题相关的任何内容,所以......不能在 http 页面中使用它。
因此,对于寻找解决方案的其他人,我会推荐 how to turn your localhost django app to run in https 上的另一个 StackO 线程(因为我正在使用 Django)。
对于那些使用谷歌浏览器的人,按照上面的帖子,你需要关闭关于你的连接不是私有的 Chrome 错误,方法如下:
打开一个新标签 粘贴:chrome://flags/#allow-insecure-localhost
启用“允许从本地主机加载的资源使用无效证书”选项。
如果终于有办法让它工作,或者稍后从 FB 方面更新,请随时发布我的问题的另一个解决方案。
【讨论】:
对于使用 django-allauth 的用户,您需要将 ACCOUNT_DEFAULT_HTTP_PROTOCOL 设置为 'https'以上是关于Facebook 应用程序 - 本地主机和强制 https 问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Facebook 应用程序的帖子中链接到本地主机上的图像时遇到问题
Apache mod_rewrite:仅当不在本地主机中时才强制 www