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

时间:2011-03-09 16:02:17

标签: java facebook restfb

我正在尝试使用带有RestFB的Java tomcat编写一个facebook应用程序。

restfb文档显示以下内容:

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

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

通常,在我获取用户的acces令牌后,我可以执行以下操作:

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

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

所以我想我在这里很丢失。

请帮忙! :)

感谢

评论后更新

使用这些说明我需要两次重定向用户的页面。首先获取代码然后获取访问令牌。用户可以看到这两个重定向,因此他可以很容易地从get参数中看到facebook应用程序密钥和密钥。如何确保这些步骤对用户隐藏?

2 个答案:

答案 0 :(得分:4)

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

  

“我如何确保这些步骤   是否对用户隐藏?“

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

以下是高级步骤:

  1. 将用户的浏览器重定向到指定相应redirect_uri
  2. 的authentication-url
  3. 从重定向的浏览器请求中检索验证令牌
  4. 使用首选的HTTP框架执行access_token检索(无需用户输入)
  5. 解析结果并检索访问令牌
  6. 带有令牌的初始restfb并根据需要使用

答案 1 :(得分:1)

REST API已被弃用。您应该查看JavaScript和Graph API - 这里有一篇很好的文章:http://ocpsoft.org/opensource/creating-a-facebook-app-setup-and-tool-installation/(三部分系列,非常详细:)