* Nota: desde la versión 3.14, me/friends solo devolverá amigos que también usen la aplicación, por lo que la implementación a continuación está obsoleta. Consulte las nuevas API de "Amigos Invitables" o "Amigos que se pueden etiquetar" para conocer las alternativas.
Usando el nuevo Facebook SDK para Android (3.0) es muy fácil conseguir la lista de amigos de su usuario. A continuación se presenta el código:
private void requestFacebookFriends(Session session) {
Request.executeMyFriendsRequestAsync(session,
new Request.GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users,
Response response) {
// TODO: your code for friends here!
}
});
}
Sin embargo, con el fin de conseguir los amigos del usuario que está utilizando su aplicación de Facebook se complica un poco (debido a la documentación de la API de Facebook). Pero sí, es posible.
En primer lugar, crear su solicitud:
private Request createRequest(Session session) {
Request request = Request.newGraphPathRequest(session, "me/friends", null);
Set<String> fields = new HashSet<String>();
String[] requiredFields = new String[] { "id", "name", "picture",
"installed" };
fields.addAll(Arrays.asList(requiredFields));
Bundle parameters = request.getParameters();
parameters.putString("fields", TextUtils.join(",", fields));
request.setParameters(parameters);
return request;
}
Tenga en cuenta que es necesario insertar el campo "instalado" en su solicitud. Estoy solicitando la ruta de la imagen del usuario con la misma solicitud. Verifique sus posibilidades here.
A continuación, se puede utilizar por encima de código para crear su solicitud y luego haz que tus amigos:
private void requestMyAppFacebookFriends(Session session) {
Request friendsRequest = createRequest(session);
friendsRequest.setCallback(new Request.Callback() {
@Override
public void onCompleted(Response response) {
List<GraphUser> friends = getResults(response);
// TODO: your code here
}
});
friendsRequest.executeAsync();
}
Tenga en cuenta que el uso de esta solicitud genérica, no recibe una lista GraphUser como respuesta. Usted necesitará siguiente código para obtener la respuesta lista GraphUser:
private List<GraphUser> getResults(Response response) {
GraphMultiResult multiResult = response
.getGraphObjectAs(GraphMultiResult.class);
GraphObjectList<GraphObject> data = multiResult.getData();
return data.castToListOf(GraphUser.class);
}
Ahora usted puede utilizar su lista de amigos del usuario, con la información si cada uno de sus amigos usan su aplicación de Facebook:
GraphUser user = friends.get(0);
boolean installed = false;
if(user.getProperty("installed") != null)
installed = (Boolean) user.getProperty("installed");
bueno , yo también quiero una lista de amigos en una lista. He utilizado el método de solicitud de amigos de Facebook como en la primera parte de la respuesta de JPMagalhaes a continuación. Pero no sé cómo tener el resultado. Me refiero a cómo obtener el resultado en una vista de lista. lo que se supone que debo hacer con los usuarios de List. Puedes responderlo aquí: http: // stackoverflow.com/questions/26773639/working-with-facebook-sdk –