为什么来自Spring Social的facebook访问令牌返回空数组,而Facebook Graph Api令牌工作正常

时间:2013-07-02 08:15:35

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

我需要在我的Facebook应用程序中进行一个简单的查询SELECT url FROM url_like WHERE user_id={friendId},我是在Spring Social的帮助下构建的。为此,我使用此库提供的身份验证代码。身份验证工作正常。但上面提到的查询返回一个空数组。我想强调所有必需的权限是given(user_likes和friend_likes)。但facebook graph explorer给我的类似访问令牌完美无缺。

来自Facebook的

Access token debugger表示这两个令牌都是有效的并且需要权限。令牌有效期持续时间的唯一区别是:我的应用程序给出的令牌在2个月内到期,而图表Api则给出一小时。

这种奇怪行为的原因是什么?为什么我的应用程序提供的具有所需权限的令牌无法进行此查询。如何解决这个问题?先感谢您。

更新 好吧,似乎Facebook为应用程序提供了与用户访问令牌不同的访问令牌。所以现在的问题是如何使用Spring Social Facebook获取用户的访问令牌?

1 个答案:

答案 0 :(得分:0)

您需要向特定提供商的社交ConnectController提交帖子请求,例如http://wwww.yourdomain:8089/connect/facebook。然后Spring社交会将用户重定向到Facebook授权页面,用户将使用所请求的权限授予您的应用程序并将代码发送回您的服务器。然后Spring社交会将该代码交换为访问令牌。您需要为该用户建立连接,以便能够代表他/她执行针对FB的请求。这是一个可能有助于http://static.springsource.org/spring-social/docs/1.0.0.M2/reference/html/connecting.html

的文档页面