2013-07-02 62 views
0

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

Access token debugger表示这两个标记都是有效的并且具有所需的权限。令牌有效期限的唯一区别:我的应用程序给出的令牌在2个月内到期,Graph API给出一个小时。

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

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

回答

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