【问题标题】:Execute simple FQL query with spring-social-facebook in java在 java 中使用 spring-social-facebook 执行简单的 FQL 查询
【发布时间】:2014-01-07 09:46:54
【问题描述】:

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

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);

感谢您的建议

【问题讨论】:

    标签: java facebook spring-social spring-social-facebook


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

      我已经通过一个简单的 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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多