2011-03-09 117 views
2

我正在尝试使用Java Tomcat和RestFB编写一个facebook应用程序。restfb:用java写一个facebook应用程序(使用新图api)

的restfb文档显示以下内容:

我回应认为我可能会看错指令,这是一个Facebook连接或除apps.facebook.com/app_name内的实际Facebook应用程序之外的任何其他内容。

我真的很感激任何有关这个问题的信息。我只是试图创建一个简单的Facebook应用程序,打印用户的名称。

一般来说后我获取用户的存取权限令牌,我可以做到以下几点:

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应用程序密钥和密钥。我如何确保这些步骤对用户隐藏?

+1

我很抱歉,您正在寻找正确的文档。这些是需要采取的_exact_步骤。事实上,你可以从你的浏览器运行这些步骤。 – Nishant 2011-03-09 16:06:24

+0

或者,如果要为应用程序创建OAuth 2授权流(http://code.google.com/p/joauth/),请使用JOAuth。我正在使用它。 – 2011-03-09 16:17:54

+0

_“他可以很容易地从get参数中看到facebook应用程序密钥和秘密密钥”_ - 有什么大不了的。您的应用与您的域名绑定。因此,除非您的域名处理请求 - 响应,否则请求将不会被验证。 – Nishant 2011-03-09 17:47:37

回答

4

正如评论中所述,这些是您需要采取的步骤访问Facebook的图形API。然而,要回答你的第二个问题:“我如何确保这些步骤 是从用户隐藏”

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

这里是高级步骤:

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