如何使用spring social facebook为给定的应用密钥和密钥生成facebook访问令牌?

时间:2013-09-10 13:37:01

标签: spring facebook-graph-api spring-social

我想使用spring social facebook访问我自己的facebook新闻源。我已经注册了我的应用程序,我可以获得应用程序密钥和密钥。如何使用spring social facebook(以编程方式)为给定的应用密钥和密钥生成facebook访问令牌?

现在我正在使用链接https://developers.facebook.com/tools/explorer生成临时访问令牌,该令牌仅在60分钟内有效。

如何在我的java应用程序本身中生成访问令牌,而不会将任何登录页面重定向到重定向回来等等。

1 个答案:

答案 0 :(得分:2)

如果您想要使用令牌访问Facebook上的用户拥有资源(例如,用户的时间线,朋友等),则无法在不涉及用户的情况下获取令牌。这是有目的的,因此在未获得用户许可的情况下,您不得获取数据或将数据写入Facebook。

但如果这就是你想要的,那么你必须将用户重定向到Facebook并返回。这是OAuth 2的授权代码授权。 Spring Social的ConnectController可以为您提供帮助。

你可能可以通过JS API来做到这一点,但是我已经这么做了一段时间,我知道在这方面有一些事情在Facebook发生了变化。它可能依赖于OAuth 2隐式授权(涉及重定向)。

还有另一种获取访问令牌而无需重定向的方法:通过OAuth 2的客户端凭据授予。但我不认为这就是你想要的。此类令牌只能用于处理非用户资源(例如Facebook的Insights API)。但如果这就是你想要的,那么你可以使用OAuth2Template的authenticateClient()方法。

同样,非常清楚,在设计上,您无法在不涉及用户的情况下获取用户访问令牌。对于Facebook,这将需要重定向。