restfb:用java编写facebook应用程序(使用新的图形api)
我正在尝试使用带有RestFB的Java tomcat编写一个facebook应用程序。
restfb文档显示以下内容:
- 创建一个Facebook应用程序
- 请求https://graph.facebook.com/oauth/authorize?client_id=MY_API_KEY& redirect_uri = http://www.facebook.com/connect/login_success.html& scope = publish_stream,offline_access,create_event
- Facebook会将您重定向到http://www.facebook.com/connect/login_success.html吗? 代码= MY_VERIFICATION_CODE
- 请求https://graph.facebook.com/oauth/access_token?client_id=MY_API_KEY& redirect_uri = http://www.facebook.com/connect/login_success.html& client_secret = MY_APP_SECRET&code = MY_VERIFICATION_CODE
- Facebook将以access_token = MY_ACCESS_TOKEN回复
我认为我可能正在查看错误的说明,这是用于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());
我的问题是如何正确获取用户的访问令牌? 在我在post顶部显示的信息中,它表明我需要提出2个请求。 第一个用于代码,另一个用于访问令牌。 并且对访问令牌的请求实际上向用户显示了我的应用密钥,因为每次我将他转发到不同的页面时,用户可以容易地查看获取和设置参数。
所以我想我在这里很丢失。
请帮忙! 🙂
谢谢
评论后更新
使用这些说明我需要两次重定向用户的页面。 首先获取代码然后获取访问令牌。 用户可以看到这两个重定向,因此他可以从get参数中轻松查看facebook应用程序密钥和密钥。 如何确保这些步骤对用户隐藏?
如评论中所述,这些是您访问Facebook图形API所需的步骤。 但是,要回答你的第二个问题:
“我如何确保这些步骤对用户隐藏?”
只有第一个请求应由用户的浏览器执行。 目的是Facebook希望确保它是用户Facebook身份的唯一授权。 根据您编写的应用程序,您可以使用重定向URL指向您指定的默认重定向URL,也可以在您的网站上指定用于检索令牌的自定义URL。 第一种方法通常由独立应用程序使用,例如可以控制浏览器如何处理重定向的移动设备。 第二种方法将用于基于Web的自定义应用程序。 收到访问令牌后,您将在代码中执行第二个操作(使用您喜欢的http apis),而不是通过浏览器。 将access_tokenurl上的重定向与authentication-url上指定的重定向url进行比较。 Facebook仅将其用于validation,并且在成功完成请求后不执行实际重定向。
以下是高级步骤:
- 将用户的浏览器重定向到authentication-url,指定相应的redirect_uri
- 从重定向的浏览器请求中检索validation令牌
- 使用首选HTTP框架执行access_token检索(无需用户输入)
- 解析结果并检索访问令牌
- 使用令牌初始restfb并根据需要使用
REST API已被弃用。 您应该查看JavaScript和Graph API – 这里有一篇很好的文章: http : //ocpsoft.org/opensource/creating-a-facebook-app-setup-and-tool-installation/ (三部分)系列,非常详细:)
- 在Facebook上实时获取用户登录状态
- 如何通过深层链接传递数据?
- 为什么Selenium驱动程序无法识别Facebook登录页面的ID元素?
- 播放框架附加#_ = _以通过OAuth2在Facebook认证后重定向?
- Facebook登录后在URL中跟踪字符
- 如何使用xmpp连接Facebook聊天,我想输入朋友的用户名,然后聊天显示SASL身份validation失败
- 使用OAUTH 2.0validation并从Facebook cookie获取数据
- Buck – java.lang.UnsatisfiedLinkError:找不到“libjni.so”。 怎么解决?
- Webview中的Facebook身份validation