Java Struts 2和一个简单的Facebook API

Java Struts 2和一个简单的Facebook API,java,facebook,struts2,Java,Facebook,Struts2,我正在尝试用java制作一个能够向用户发布facebook状态的webapp,我在授权过程中遇到了一些问题。基本上,我有一个struts2操作,将用户重定向到facebook登录页面,然后用一个“代码”重定向回我。然后,我使用此代码访问另一个facebook URL(用它换取访问令牌) 问题是,我可能只是遗漏了一些简单的东西,第二个facebook url不会重定向到某个操作,而是返回一个带有访问令牌的页面。所以,我的问题是,我如何访问该令牌以放入我的数据库中,最好不向最终用户显示访问令牌 TL

我正在尝试用java制作一个能够向用户发布facebook状态的webapp,我在授权过程中遇到了一些问题。基本上,我有一个struts2操作,将用户重定向到facebook登录页面,然后用一个“代码”重定向回我。然后,我使用此代码访问另一个facebook URL(用它换取访问令牌)

问题是,我可能只是遗漏了一些简单的东西,第二个facebook url不会重定向到某个操作,而是返回一个带有访问令牌的页面。所以,我的问题是,我如何访问该令牌以放入我的数据库中,最好不向最终用户显示访问令牌

TLDR;你知道我如何从struts2中的一个动作调用一个请求到一个外部url并解析响应而不向用户显示它吗?谢谢

干杯,
卢卡斯·雷泽克(Lukas Rezek)

所以基本上你想要3件:

  • 拦截器
  • 授权请求操作
  • authResponse动作
  • 因此,流程是:

  • 拦截器将检查当前用户是否有auth令牌,若并没有,它将重定向到authRequest操作
  • authRequest操作将填写您的应用程序详细信息-创建url graph.facebook.com/oauth/authorize?client_id=xxx&redirect_uri=yyy等 请注意,重定向uri正是authResponse操作。因此,在用户授权您的应用程序浏览器后,将重定向到authResponse操作
  • authResponse操作是一个页面,您可以在其中检索令牌,将其保存到DB,并可能将其设置为会话。完成后-完成登录,可以重定向到应用程序主页操作

  • 要在struts操作中访问外部网站,您有两个选择。创建套接字并连接到外部站点,通过socket.outputstream发送请求,并通过socket.inputStream解析响应,或者使用浏览器仿真器,如Apache HttpComponents或HTMLUnit


    我不会让我的web应用程序的用户靠近Facebook站点——我会有自己的页面,要求FB登录,并使用上述两种方法之一处理与Facebook站点的交互。我倾向于使用HTMLUnit,因为它被设计成远程站点的浏览器。

    您是否正在起诉任何oauth API?或者使用简单的java代码来做这件事?