繁体   English   中英

使用java中的facebook4j从特定页面中提取Facebook用户信息

[英]Extracting facebook user information from a particular page using facebook4j in java

我想从特定页面中提取用户信息( 年龄,位置等) 例如 :我的搜索字符串是“obama” 所以我想要在奥巴马的这个特定页面中喜欢或评论过的所有用户的信息。

我能够在某种程度上通过以下方式实现这一目标:

public static String getFacebookPostes(Facebook facebook, String searchPost)
            throws FacebookException {
        String searchResult = "Item : " + searchPost + "\n";
        StringBuilder searchMessage = new StringBuilder();
        ResponseList<Post> results = facebook.getPosts(searchPost);

        //facebook.getFriends(new Reading().fields("gender"));
        /*System.out.println("success");
        System.out.println(facebook.getMe().getFirstName());*/      

        String userId="";
        for (Post post : results) {
            System.out.println(post.getMessage());
            searchMessage.append(post.getMessage() + "\n");
            for (int j = 0; j < post.getComments().size(); j++) {
             searchMessage.append(post.getComments().get(j).getFrom()
                        .getName()
                        + ", ");
             searchMessage.append(post.getComments().get(j).getMessage()
                        + ", ");
             searchMessage.append(post.getComments().get(j).getCreatedTime()
                        + ", ");
             searchMessage.append(post.getComments().get(j).getLikeCount()
                        + "\n");

                         userId=post.getComments().get(j).getFrom().getId();
             User user = facebook.getUser(userId);
             System.out.println(user);
            }
        }

        searchResult = searchResult + searchMessage.toString();
        System.out.println(searchMessage.toString());
        return searchResult;
    }

参考网址: http//www.devx.com/Java/how-to-integrate-facebook-and-twitter-with-java-applications.html

但这只给了我姓名,用户名,性别,区域设置,个人资料链接..它给了我位置,生日,电子邮件的空值。

通过谷歌搜索,一些人建议“这一切都取决于用户公开的信息”。 所以我创建了一个测试帐户,并将所有信息公开并在obama页面上发表评论。 它显示我公开的信息,电子邮件和生日除外。我如何提取这两个参数?

任何帮助,建议,指导表示赞赏。

PS :我使用的是eclipse kepler和facebook4j-core-2.0.2

确保您已设置正确的OAuthPermissions,如email,user_birthday,read_stream等。

configurationBuilder.setOAuthPermissions("email, publish_stream, id, name, first_name, last_name, read_stream , generic");

尝试这个....

使用FacebookClient对象....从Facebook开发人员工具和fetchobject()传递用户名中获取访问令牌 .....你可以使用某种正则表达式或其他方法从url中提取用户名 ....

注意 : - 结果取决于所有字段都公开的事实......

public static FacebookClient facebookClient;
public static void main(String[] args) throws FacebookException 
{

        facebookClient = new DefaultFacebookClient("ur access token");
        String result= facebookClient.fetchObject("username", String.class);
        System.out.println(result);

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM