Facebook 登录:无法加载 URL 此 URL 的域不包含在应用程序的域中

2024-07-03

我知道很多这样的问题在发布问题后已经被问过很多次了。我的问题仍然没有解决。

我有一个 Web 应用程序,其中使用 Oauth 身份验证嵌入了 Facebook 登录信息。我使用以下代码寻求帮助使用 Java 登录 Facebook http://javapapers.com/java/java-facebook-login-with-oauth-authentication/

直到上个月,它都工作正常,但从几天开始,我们不断收到错误:-

无法加载网址 此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的“应用程序域”字段。

**Setting used are following:-
  Website url : **https://www.enggheads.com/**
  App Domain   :  **enggheads.com**
   Redirect uri : 
      1. https://www.enggheads.com/#!login
      2. https://www.enggheads.com/#!signup**

屏幕截图:

所以,我只想知道我遇到这个问题的原因是什么。我在设置部分缺少什么东西吗?

UPDATE

代码流程:

步骤1。在按钮上单击 url 称为--->

"http://www.facebook.com/dialog/oauth?" + "client_id="
                    + FB_APP_ID + "&redirect_uri="
                    + URLEncoder.encode(REDIRECT_URI, "UTF-8")
                    + "&scope=public_profile ";

我在这部分收到错误,它给出了错误无法加载网址 此 URL 的域不包含在应用程序的域中。为了能够加载此 URL,请将应用程序的所有域和子域添加到应用程序设置中的“应用程序域”字段。


我想分享两种解决方案的方法。希望它能解决您的问题。

解决方案一:

Facebook 现在将一些功能作为插件。在左侧选择产品并添加产品。然后选择 Facebook 登录。从那里开始,您将看到所有 Oauth 选项都显示出来。

OR,

选择产品并添加产品。然后选择 Facebook 登录。

然后添加http://本地主机:3000/ http://localhost:3000/到田间地头'Valid OAuth redirect URIs',然后一切正常。

解决方案2:

如果您在 Facebook 中创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的 URL?

您能再检查一下您的APP在该页面的设置吗?

https://developers.facebook.com/apps https://developers.facebook.com/apps

  1. 选择正确的应用程序并单击编辑按钮;
  2. 检查 URL 和路径是否正确输入并指向 您安装 Ultimate Facebook 插件的网站。

信用去往雷莱昂内尔 https://stackoverflow.com/users/6125193/lei-lionel

UPDATE1:

I think 您的访问令牌已过期。所以你需要扩展访问令牌。 为此,请访问此链接:

  1. 延长 Facebook 访问令牌(使其有效期为 60 天) http://appdevresources.blogspot.sg/2012/11/extend-facebook-access-token-make-it.html
  2. 访问令牌的到期和延期 https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

资源链接:

  1. 为 Facebook 页面生成“永不过期”访问令牌 https://stackoverflow.com/questions/17426018/generate-never-expire-access-token-for-facebook-page
  2. Facebook Oauth 2.0 访问令牌会过期吗? https://stackoverflow.com/questions/2687770/do-facebook-oauth-2-0-access-tokens-expire

UPDATE2:

我只想问一件事是否可能是应用程序域错误 与访问令牌过期时间有关吗?

Ans:

从服务器端长期令牌生成长期用户令牌

Facebook 有一个高级选项,可以为以下应用程序获取长期访问令牌:

  1. 拥有自己的身份验证系统(使用用户名/密码 例子)
  2. 在他们的服务器上存储 Facebook 访问令牌供使用它的人使用 他们发送给不同的客户端(浏览器或本机移动应用程序)
  3. 从所有这些客户端进行 API 调用

如果您的应用程序是这样设置的,则应使用此处描述的流程从每个客户端获取访问令牌,以避免触发 Facebook 的自动垃圾邮件系统。最终结果是每个客户端都将拥有自己的长期访问令牌。

从较高层面来说,您可以通过以下方式从客户端获取长期令牌:

  1. 使用有效且有效的地址从您的服务器调用 Facebook 的服务器 当前的长期令牌来生成代码。 (这假设你已经 已经通过 Facebook 登录获得了长期令牌。如果令牌 您使用的无效或已过期,您必须获取新的 让使用您应用程序的人再次登录。)
  2. 将该代码安全地发送给客户端。
  3. 然后,客户端将代码交换为长期令牌。
  4. 客户端可以使用长期令牌来发布故事或查询 数据。

获取代码

使用长期用户访问令牌,调用以下端点:

https://graph.facebook.com/oauth/client_code?access_token=...&client_secret=...&redirect_uri=...&client_id=...

您需要输入:access_token, client_secret, redirect_uri and client_id.

响应将是:

响应将类似于:

{"code": "...."}

兑换访问令牌的代码

从 Facebook 的服务器检索到代码后,您需要通过安全通道将其发送给客户端。完成后,您需要从客户端向此端点发出请求:

https://graph.facebook.com/oauth/access_token?code=...&client_id=...&redirect_uri=...&machine_id= ...

该调用需要以下参数:

client_id - 是

代码 - 是

重定向_uri - 是

machine_id - 否

响应将如下所示:

{"access_token":"...", "expires_in":..., "machine_id":"..."}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Facebook 登录:无法加载 URL 此 URL 的域不包含在应用程序的域中 的相关文章

  • 在 Java Swing 应用程序中读取和写入属性文件

    我有一个任务是创建一个 java Swing 应用程序来使用 mysql 数据库做一些事情 我计划在 properties 文件中设置数据库连接属性 在该应用程序中 用户应该能够通过应用程序更改数据库属性 我遇到的问题是如何通过 swing
  • Java Appengine APPSTATS 导致 java 内存不足错误

    我的 java appengine 应用程序中有几个 servlet 它们在内存中进行排序 并需要几秒钟的时间才能完成 这些完全没有错误 但是 我最近为 appengine 启用了 appstats 并开始收到以下错误 java lang
  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • 使用 Java 打开 Arduino 上的 LED

    我安装了 Java 串行 RXTX 库并正确设置了 Arduino 我什至已经启动并运行了示例代码 但我似乎无法理解如何访问不同的 Arduino 引脚以打开 LED 等 如何使用 OutputStream 或任何其他方式访问引脚 我是否需
  • 字符串的两半就地交错

    给定一个字符串even尺寸 说 abcdef123456 我如何将两半交错 这样same字符串将变成这样 a1b2c3d4e5f6 我尝试开发一种算法 但失败了 有人能给我一些吗hints至于如何进行 我需要在不创建额外的字符串变量或数组的
  • 我应该如何在 Spring Integration 中构建消息?

    我编写了一个应用程序 正在对其进行重构以更好地利用 Spring Integration 应用程序处理文件的内容 问题 据我所知 是我当前的实现通过了Files代替Messages 即 Spring 集成Messages http docs
  • 在 MacOS 命令行上使用 Android Studio 内置 Java

    这里有很多关于在 Mac 上安装 Java 以及让 Android Studio 使用正确版本的信息 很多已经过时 但是最近版本的 Android Studio 2 2 及更高版本 提供了自己的 Java 对于大多数 Mac 用户来说 没有
  • Java自动将集合转换为参数数组?

    我知道Java 数组参数语法可以接收数组作为参数 或者只是传递给方法的许多参数 然而 我注意到它对于集合也是如此 public static void main String args Collection objects new Arra
  • HBase 无法在 Windows 上以独立模式启动

    我下载了HBase 1 0 1在我的 Windows 机器上 无法启动它 我收到以下错误消息 C Users admin Downloads hbase 1 0 1 gt bin start hbase cmd Error Could no
  • Java 8 模块与 OSGi 有何不同?

    Java 8 和 Jigsaw 项目为 SDK 带来了模块系统 我认为这是一件好事 因为它是软件包的一部分 内置 OSGi 还提供了一个模块系统 但需要一个容器 但除此之外 它们之间的主要区别是什么 如果我使用 OSGi 我是否能够使用标准
  • ClassLoader.getResourceAsStream 如何工作?

    我用 maven 创建了一个 jar 文件 当我打开这个罐子时 我可以找到以下内容 my jar text1 txt folder some other stuff 当我在 Eclipse 中运行此代码片段时 打印出 text1 txt 的
  • 解压jar到指定目录

    我想使用以下命令将我的罐子之一提取到指定目录jar命令行实用程序 如果我理解正确的话 C选项应该能解决问题 但是当我尝试时 jar xvf myJar jar C directoryToExtractTo 我从 jar 实用程序获取使用信息
  • 相对于当前日期对 Java 集合进行排序

    我想相对于当前日期对日期列表进行排序 例如列表中有下一项 10 01 2018 10 20 2018 10 14 2018 10 02 2018 当前日期是10 08 2018 结果应该是按下一个顺序升序排列的数组 10 14 2018 1
  • 通过解析异常获取方法名及其包含的参数

    当我收到异常时 例如IOException or RunTimeException 我只能知道班级里的行号 首先是我的问题 是否可以通过异常检索方法名称 其次 是否可以通过行号检索该方法以及该方法的参数 附注我需要知道确切的方法名称及其参数
  • Eclipse 创建 Java 虚拟机失败

    我正在使用 eclipse 开发 android 应用程序 它总是进展顺利 但今天它出现了问题 当我尝试打开 Eclipse 时 它 向我显示此消息 Failed to create the java virtual machine Err
  • 使用 Apache CXF 2.4 JAX-RS 和 Spring Security 3.2 获取用户名

    我在 JAX RS 资源中获取用户名SecurityContextHolder这有效 Path myresource public class MyResoure Get public String getUserName return S
  • 使用lib添加自定义字体android

    我正在使用 android 自定义字体 lib Calligraphyhttps github com chrisjenx Calligraphy https github com chrisjenx Calligraphy 但对textv
  • 如何限制匿名子类的创建(Java)

    抱歉 我之前没有正确表述这个问题 我尝试实现工厂模式 一个更好的例子 它是一个带有 create 函数的抽象类 Human 根据创建时传递的参数 它决定是返回其子类 Man 的实例还是返回 Woman 子类的实例 因此 您可以使用以下命令调
  • CacheStoreMode USE 和 REFRESH 有什么区别

    javadoc 为缓存存储模式 http docs oracle com javaee 6 api javax persistence CacheStoreMode html区分我无法真正理解的一点 javadoc 为USE mode 从数
  • 使用部署在 Tomcat 中的 Web 应用程序关闭 Tomcat

    我对我的 webapp 开发中遇到的 tomcat 操作有一些疑问 有什么办法可以从部署在tomcat中的web应用程序中关闭tomcat本身吗 tomcat 是否在一个 JVM 或单个 JVM 中运行其所有 webapps war 或者在

随机推荐