Android get birthday dates from Facebook profile

12,007

Create a method:

getProfileInformation()

In the method body you have to write:

public void getProfileInformation() {
mAsyncRunner.request("me", new RequestListener() {
    @Override
    public void onComplete(String response, Object state) {
        Log.d("Profile", response);
        String json = response;
        try {
            JSONObject profile = new JSONObject(json);
            // getting name of the user
            String name = profile.getString("name");
            // getting email of the user
            String email = profile.getString("email");
            //getting user birthday
            String birth_day=profile.getString("birthday");

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(), "Name: " + name + "\nEmail: " + email, Toast.LENGTH_LONG).show();
                }

            });

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

    @Override
    public void onIOException(IOException e, Object state) {
    }

    @Override
    public void onFileNotFoundException(FileNotFoundException e,
            Object state) {
    }

    @Override
    public void onMalformedURLException(MalformedURLException e,
            Object state) {
    }

    @Override
    public void onFacebookError(FacebookError e, Object state) {
    }
});

}

The above function will get json data from facebook. You need to parse the json in order to get individual profile data.

The sample profile json from facebook will be like this:

     {
   "id": "1464730016",
   "name": "XYZ",
   "first_name": "XYZ",
   "last_name": "ABC",
   "link": "https://....",
   "username": "XYZ",
   "birthday": "22/10/89",
   "hometown": 
}

For more details you may refer:

http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/
Share:
12,007

Related videos on Youtube

Madhur Rampal
Author by

Madhur Rampal

Updated on June 05, 2022

Comments

  • Madhur Rampal
    Madhur Rampal almost 2 years

    I want to get all birthday dates which are in my friend list. I have tried for days. My code is given below.

    Facebook facebook = new Facebook(<MY_FACEBOOK_ID>);
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    
        mContext = this;
        setContentView(R.layout.main);
    
        showNotification();
    
      final String[] PERMISSIONS = new String[] {"user_location", "user_birthday"};        
    
    
        facebook.authorize(this, PERMISSIONS, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}
    
    
            @Override
            public void onCancel() {}
    
            @Override
            public void onFacebookError(FacebookError e) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void onError(DialogError e) {
                // TODO Auto-generated method stub
    
            }
        });
    
        try {
    
              String token = facebook.getAccessToken();
    
              Bundle bundle = new Bundle();
              bundle.putString("fields", "id,name");
              bundle.putString("access_token", token);
    
                  String response = facebook.request( "me/friends", bundle ); 
    
                  facebook.setAccessToken(facebook.getAccessToken());
    
                  Toast.makeText(mContext, token , Toast.LENGTH_LONG).show();
                  Toast.makeText(mContext, response, Toast.LENGTH_LONG).show();
    
                  JSONObject json = Util.parseJson( response );
    
                  JSONArray data = json.getJSONArray( "data" );
    
                  for ( int i = 0; i < data.length(); i++ )
                  {
                      JSONObject friend = data.getJSONObject( i );
    
                      String id = friend.getString( "id" );
                      String name = friend.getString( "name" );
                      Toast.makeText(mContext, "ID: "+ id , Toast.LENGTH_LONG).show();
                      Toast.makeText(mContext, "NAME: "+ name , Toast.LENGTH_LONG).show();
                  }
    

    Every time I use this code gives an error. And token both shows empty and response shows Questions “An active access token must be used to query information about the current user”