1

我正在使用 Spring Social 来尝试获取 Facebook 朋友及其位置的列表。据我所知,Spring Social 将访问令牌放入 HTTP 请求标头中,如下所示:

Authorization: OAuth AAAFDa6Gl4usBAJH4...

而不是将其作为 access_token 参数附加到 URL。因此,请求只返回基本信息,不包括位置数据。我可以看出标头中的访问令牌是有效的,因为如果我手动将其包含在 GET 请求中,则将返回完整的数据集,包括位置。

有人以前见过这个问题,可以让我知道问题是什么吗?

4

1 回答 1

0

您是正确的,Spring Social 将访问令牌放在 Authorization 标头中(根据 OAuth 2 规范的草案 10)。现在,这可能应该使用最近草稿中的“Bearer”令牌格式,但过去几天我一直在使用 Spring Social Facebook 来做你想做的事情——获取用户的朋友- 它一直工作正常。

Facebook 的文档似乎比 Authorization 标头更重视 access_token 查询参数,但他们的 API 支持(总是有)。因此,假设给定的令牌被授予查看用户朋友的权限,它应该可以工作。

事实上,我只是再次确认了这一点:首先,我使用了 Spring Social Showcase(https://github.com/SpringSource/spring-social-samples/tree/master/spring-social-showcase),连接到 Facebook,然后点击左侧菜单中的“好友”列表。有效。我还获得了一个有效的访问令牌,将我的浏览器指向https://graph.facebook.com/me/friends并使用我的浏览器的 Modify Headers 插件将 Authorization 标头设置为“OAuth {my token}”,它也工作。

您有没有尝试过使用 Spring Social Showcase(在后台使用 Spring Social Facebook)?想知道你是否在那里面临同样的问题。

但是感谢您提出这个问题,因为它提醒我需要继续更新标题以使用“Bearer”而不是“OAuth”(我也确认它可以工作)。

于 2012-09-15T21:11:39.420 回答