简体   繁体   English

如何将即将到来的生日的 Facebook 好友添加到我的应用中?

[英]How to add Facebook friends upcoming birthdays to my app?

I'm working on a calendar app, and I wanted to fetch upcoming birthdays from Facebook, so I read about it and found that i need to create App using Facebook's Graph API explorer, I did, but it didn't work for my, when I try to get my friends list I only get an empty list, Here's the code I used, there's no errors, but the list is empty.我正在开发一个日历应用程序,我想从 Facebook 获取即将到来的生日,所以我阅读了它并发现我需要使用 Facebook 的 Graph API 资源管理器创建应用程序,我做到了,但它对我的不起作用,当我尝试获取我的朋友列表时,我只得到一个空列表,这是我使用的代码,没有错误,但列表是空的。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String code = request.getParameter("code");

    String URLEncodedRedirectURI = URLEncoder.encode("http://localhost:8084/facebookfriends/FriendsListServlet");
    String MY_ACCESS_TOKEN = "";

    String authURL = "https://graph.facebook.com/oauth/access_token?"
            + "client_id=" + FriendsListServlet.APP_ID + "&"
            + "redirect_uri=" + URLEncodedRedirectURI + "&"
            + "client_secret=" + FriendsListServlet.APP_SECRET + "&"
            + "code=" + code;

    URL url = new URL(authURL);

    String result = readURL(url);
    String[] pairs = result.split("&");

    for (String pair : pairs) {

        String[] kv = pair.split("=");
        if (kv[0].equals("access_token")) {
            MY_ACCESS_TOKEN = kv[1];
        }
    }
    FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN, FriendsListServlet.APP_SECRET);
    Connection<User> friends = null;

    try {
        User loginUser = facebookClient.fetchObject("me", User.class);
        request.setAttribute("loginUser", loginUser);
        friends = facebookClient.fetchConnection("/me/friends", User.class);

    } catch (FacebookException e) {
        e.printStackTrace();
    }

    List<User> friendsList = friends.getData();
    int count = friendsList.size();
    request.setAttribute("friendsList", friendsList);
    request.getRequestDispatcher("FriendsList.jsp").forward(request, response);
}

You cannot get the friends birthdays anymore without them using your app.如果没有他们使用您的应用程序,您将无法再获得朋友的生日。 The friends_* permissions have been removed with the introduction of the Graph API.随着 Graph API 的引入, friends_*权限已被删除。

See

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

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