首页 文章

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

提问于
浏览
1

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

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

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

1 回答

  • 2

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

    但如果这就是你想要的,那么你必须将用户重定向到Facebook并返回 . 这是OAuth 2 's authorization code grant. Spring Social'的ConnectController可以帮助你解决这个问题 .

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

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

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

相关问题