* Примечание: с версии 3.14 меня/друзей вернут только друзей, которые также используют приложение, поэтому ниже реализация устарела. См. Новые API-интерфейсы «Invitable Friends» или «Taggable Friends» для альтернатив.
Использование нового Facebook SDK для Android (3.0) очень легко получить список друзей пользователя. Ниже приводится код:
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!
}
});
}
Тем не менее, для того, чтобы получить друзей пользователя, которые используют приложение Facebook будет немного сложно (из документации API Facebook). Но есть, возможно.
Прежде всего, создайте запрос:
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;
}
Обратите внимание, что вам нужно, чтобы вставить поле «установлен» в запросе. Я запрашиваю путь изображения пользователя с тем же запросом. Проверьте свои возможности here.
Далее вы можете использовать выше код, чтобы создать свой запрос, а затем получить ваши друзья:
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();
}
Обратите внимание, что с помощью этого универсального запроса, вы не получите список GraphUser в качестве ответа. Вам понадобится следующий код, чтобы получить ответ в виде списка GraphUser:
private List<GraphUser> getResults(Response response) {
GraphMultiResult multiResult = response
.getGraphObjectAs(GraphMultiResult.class);
GraphObjectList<GraphObject> data = multiResult.getData();
return data.castToListOf(GraphUser.class);
}
Теперь вы можете использовать список друзей вашего пользователя, с информацией, если каждый из ваших друзей использовать приложение Facebook:
GraphUser user = friends.get(0);
boolean installed = false;
if(user.getProperty("installed") != null)
installed = (Boolean) user.getProperty("installed");
эй , я тоже хочу список друзей в списке. Я использовал метод запросов facebook, как в первой части ответа JPMagalhaes ниже. Но я не знаю, как использовать результат. Я имею в виду, как получить результат в списке. что я должен делать с List пользователями. u можете ответить на него здесь: http: // stackoverflow.com/questions/26773639/working-with-facebook-sdk –