example android facebook facebook-graph-api

android - example - search facebook graph api



Android: Obteniendo amigos CumpleaƱos usando Graph API Facebook SDK 3.0 (2)

Aquí obtenemos algo para esto

String url = "https://graph.facebook.com/me/friends?fields=birthday,name&access_token="+ facebook.getAccessToken();

usando este iam conseguir cumpleaños

JSONObject JOAlbums = JAAlbums.getJSONObject(i); String date = DaysCount(JOAlbums.getString("birthday"));

Posible duplicado:
Android: Cómo obtener las fechas de nacimiento de amigos desde el calendario de Facebook usando Graph API

Consulte: https://stackoverflow.com/a/13926065/1770916

Establecí los permisos para obtener amigos cumpleaños y lista. el código esta abajo

private void signInWithFacebook() { mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() { @Override public void call(Session session, SessionState state, Exception exception) { } }, null, false); String applicationId = Utility.getMetadataApplicationId(getBaseContext()); mCurrentSession = mSessionTracker.getSession(); if (mCurrentSession == null || mCurrentSession.getState().isClosed()) { mSessionTracker.setSession(null); Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build(); Session.setActiveSession(session); mCurrentSession = session; } if (!mCurrentSession.isOpened()) { Session.OpenRequest openRequest = null; openRequest = new Session.OpenRequest(MainActivity.this); if (openRequest != null) { openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location", "friends_birthday","read_friendlists" )); openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK); mCurrentSession.openForRead(openRequest); } } }

Pero solo obtengo el ID y nombre de amigo.

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); if (mCurrentSession.isOpened()) { Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() { // callback after Graph API response with user object @Override public void onCompleted(GraphUser user, Response response) { Log.d("AL", user.getId() + " " + user.getName() + " " + user.getInnerJSONObject()); } }); Request.executeMyFriendsRequestAsync(mCurrentSession, new Request.GraphUserListCallback() { @Override public void onCompleted(List<GraphUser> users, Response response) { Log.d("AL",""+response.toString()); for (int i=0;i<users.size();i++){ Log.d("AL",""+users.get(i).toString()); welcome.setText("Done"); } } }); } }

Al usar el código anterior, recibo cosas adicionales de los usuarios, como correo electrónico, cumpleaños, etc. después de agregar permisos pero no de obtener amigos, como cumpleaños.

donde estoy haciendo mal ???


Para obtener información de amigos, necesitamos obtener HttpConnection para seguir la url

"https://graph.facebook.com/me/friends?access_token="+ mAccessToken + "&fields=id,first_name,last_name,location,picture,birthday");

Aquí agregue los campos que necesita. Creo que funcionará ..