繁体   English   中英

restfb:使用Java编写Facebook应用程序(使用新的图形API)

[英]restfb: Writing a facebook application with java (using the new graph api)

我正在尝试使用Java tomcat和RestFB编写一个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和set参数。

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

请帮忙! :)

谢谢

评论后更新

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

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

“如何确保对用户隐藏了这些步骤?”

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

以下是高级步骤:

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

REST API已弃用。 您应该改用JavaScript和Graph API-此处有一篇不错的文章: http : //ocpsoft.org/opensource/creating-a-facebook-app-setup-and-tool-installation/ (三部分系列,非常详细:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM