java - restfb:用 java 编写 facebook 应用程序(使用新的图形 api)

标签 java facebook restfb

我正在尝试使用 Java tomcat 和 RestFB 编写 Facebook 应用程序。

restfb 文档显示以下内容:

我认为我可能看到了错误的说明,这适用于 Facebook 连接或 apps.facebook.com/app_name 内实际 Facebook 应用程序之外的任何其他内容。

我非常感谢任何有关该问题的相关信息。我只是想创建一个简单的 Facebook 应用程序来打印用户的姓名。

一般来说,在获取用户的访问 token 后,我可以执行以下操作:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
User user = facebookClient.fetchObject("me", User.class);
out.println("User name: " + user.getName());

我的问题是如何正确获取用户的访问 token ?在我在帖子顶部显示的信息中,它表明我需要提出 2 个请求。第一个用于代码,另一个用于访问 token 。对访问 token 的请求实际上向用户泄露了我的应用程序 key ,因为每次我将他转发到不同的页面时,用户都可以轻松查看获取和设置参数。

所以我想我在这里迷路了。

请帮忙! :)

谢谢

评论后更新

根据这些说明,我需要两次重定向用户的页面。首先获取代码,然后获取访问 token 。用户可以看到这两个重定向,因此他可以轻松地从 get 参数中看到 facebook 应用程序 key 和 secret key 。我如何确保这些步骤对用户 Conceal ?

最佳答案

正如评论中所述,这些是您访问 Facebook 的图形 API 所需执行的步骤。但是,回答你的第二个问题:

"How do I make sure that these steps are hidden from the user?"

用户的浏览器应仅执行第一个请求。目的是Facebook希望确保它是用户Facebook身份的唯一授权提供者。根据您编写的应用程序,您可以使用重定向 URL 指向您指定的默认重定向 URL,也可以在您的网站上指定用于检索 token 的自定义 URL。第一种方法通常由独立应用程序使用,例如可以控制浏览器处理重定向的移动设备。第二种方法将用于基于 Web 的自定义应用程序。收到访问 token 后,您将在代码中执行第二个操作(使用您最喜欢的 http api),而不是通过浏览器。 access_token url 上的重定向与authentication-url 上指定的重定向url 进行比较。 Facebook 仅将其用于验证,不会在成功完成请求时执行实际重定向。

以下是高级步骤:

  1. 将用户的浏览器重定向到指定适当的redirect_uri 的身份验证网址
  2. 从重定向的浏览器请求中检索验证 token
  3. 使用您首选的 HTTP 框架执行 access_token 检索(无需用户输入)
  4. 解析结果并检索访问 token
  5. 带有 token 的初始restfb并根据需要使用

关于java - restfb:用 java 编写 facebook 应用程序(使用新的图形 api),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248484/

相关文章:

java - 我们可以使用带有破折号 `-` 或下划线 `_` 的 spring-boot 外部配置文件名吗?

java - 事件派发线程如何工作?

ios - Xcode - 如何将照片从 iPhone 应用程序共享到 Facebook 管理的页面提要

php - 使用社区 SDK 与 Google、Facebook、Twitter 进行身份验证

java - RestFB 不对帖子发表评论

java - 什么是 MQ,它们与 Web 服务有何不同

java - 如何在 SWT 中将文本设置为只读组合

android - Stetho:Chrome 开发工具中的 Facebook 调试不工作

java - 无法访问我的好友的好友计数

java - 在 JAVA 中使用 facebook RestFB API