简体   繁体   中英

How to get Facebook Friends Upcoming Birthdays using Hackbook Example

I am using Facebook Android Developers Hackbook example, I want to know how can I get Facebook Friends Upcoming Birthdays like: Turns 27 today, Turns 28 in 10 days and so on, using GraphAPI or FQL

  public class graphApiRequestListener extends BaseRequestListener {

    @Override
    public void onComplete(final String response, final Object state) {
        dialog.dismiss();
        // access token is appended by Facebook object, hence params are
        // added here after request is complete
        if (!params.isEmpty()) {
            url += "?" + Util.encodeUrl(params); // Params
        }
        metadataObject = null;
        params.clear();
        try {
            JSONObject json = Util.parseJson(response);
            if (json.has("metadata")) {
                metadataObject = json.getJSONObject("metadata");
                json.remove("metadata");
            } else {
                metadataObject = null;
            }
            setText(json.toString(2));
        } catch (JSONException e) {
            setText(e.getMessage());
            e.printStackTrace();
        } catch (FacebookError e) {
            setText(e.getMessage());
            e.printStackTrace();
        }
    }

Here some code using old SDK of facebook try this

    Facebook fb = new Facebook(main.APP_ID);
    SessionStore.restore(fb, mActivity);
    mAsyncRunner = new AsyncFacebookRunner(fb);

    String graphPath = "me/friends";
    Bundle bundle_friends = new Bundle();
    bundle_friends.putString("fields", "id,birthday");

    mAsyncRunner.paramsRequest(graphPath, bundle_friends, new AsyncRequestListener(mActivity) {

        @Override
        public void onComplete(JSONObject obj, Object state) {

            try {
                JSONArray data = obj.getJSONArray("data");
                for (int i = 0; i < data.length(); i++) {
                    JSONObject temp = data.getJSONObject(i);
                    if (!temp.isNull("birthday"))
                        bundleForBirthdays.putString(temp.getString("id"), temp.getString("birthday"));
                }


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

        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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