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 的域不包含在应用程序的域中 的相关文章

随机推荐