1

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

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

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

4

1 回答 1

2

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

但如果这是您想要的,那么您必须将用户重定向到 Facebook 并返回。这是 OAuth 2 的授权码授予。Spring Social 的 ConnectController 可以帮助您解决这个问题。

您可能可以通过 JS API 来实现,但我已经有一段时间没有这样做了,而且我知道 Facebook 在这方面发生了一些变化。它可能依赖于 OAuth 2 Implicit Grant(涉及重定向)。

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

同样,要非常清楚,在不涉及用户的情况下,您无法获得用户访问令牌,这在很大程度上是设计使然。而对于 Facebook,这将需要重定向。

于 2013-09-11T05:18:23.813 回答