2014-01-07 38 views
0

我很感激spring-social-facebook库的实现。我正在尝试执行FQL查询,但Facebook向我发送空的结果。如果我在Facebook Graph API Explorer中执行相同的查询,它就像一个魅力。我检查了所有权限。我的代码是这样的:在java中使用spring-social-facebook执行简单的FQL查询

private static final String FQL_GET_FRIENDS = "SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me())"; 

Facebook facebook = new FacebookTemplate(token); 
List<Reference> references = facebook.userOperations().search(FQL_GET_FRIENDS); 

谢谢您的建议

回答

1

好的。这为我工作:

MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); 
     parameters.set("q", FQL_GET_FRIENDS); 
Map<String, Object> resultSet = (Map<String, Object>) facebookTemplate 
       .fetchObject("fql", Map.class, parameters); 
0

我已经通过一个简单的HTTP做相同的GET请求“faceBookURL”与具有足够权限的有效令牌,你可以使用这个::

private static String STR_FACEBOOK_FQL_URL = "https://api.facebook.com/method/fql.query?query="; 
private static String STR_FACEBOOK_RETURN_FORMAT = "&format=json"; 
private static String STR_FACEBOOK_ENCODE_FORMAT = "UTF-8"; 
private static String STR_FACEBOOK_ACCESS_TOKEN = "&access_token="; 

private static final String FQL_GET_FRIENDS = "SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me())"; 

String encodedQuery = URLEncoder.encode(FQL_GET_FRIENDS, STR_FACEBOOK_ENCODE_FORMAT); 
String faceBookURL = STR_FACEBOOK_FQL_URL + encodedQuery + STR_FACEBOOK_RETURN_FORMAT 
     + STR_FACEBOOK_ACCESS_TOKEN + token;