Я разрабатываю свое первое Android-приложение с использованием Parse и Facebook, поэтому я довольно новичок в этом.Android FaceBook newMyFriendsRequest Возвращает EMPTY Список друзей
Я пытаюсь получить список друзей пользователя с Request.newMyFriendsRequest()
, но он дает мне пустой список при тестировании с реальными пользователями.
Насколько я знаю, с Graph API v2.0
этот запрос вернет только набор друзей человека, которые также используют приложение.
Для этой цели я создал фальшивый профиль Fb, я стал другом с ним в Facebook с моим реальным профилем установлен мое приложение, зарегистрированный с ParseUser
и Linked с Facebook, используя ParseFacebookUtils.link
с обеими профилями, но запрос возвращает пустые список друзей.
Я создал несколько тестовых пользователей в панели инструментов приложения Facebook и смоделировал несколько дружеских связей между ними. Я сделал тот же процесс в своем приложении (зарегистрируйтесь с parseUser
, ссылка с ParseFacebookUtils.link
) с двумя из них, а в списке users.size()
возвращается 2 друзей, как и ожидалось.
Почему это не работает с моим фактическим профилем и поддельным (что похоже на любой другой реальный)?
Это, как я, связывающие профили:
List<String> permissions = new ArrayList<String>();
permissions.add("public_profile");
permissions.add("user_friends");
ParseFacebookUtils.link(currentUser, permissions, MainActivity.this, new SaveCallback() {
@Override
public void done(ParseException ex) {
if (ParseFacebookUtils.isLinked(currentUser)) {
Log.d(TAG, "Woohoo, user logged in with Facebook!");
Toast.makeText(getApplicationContext(), "Facebook succesfully linked", Toast.LENGTH_LONG).show();
}
if (ex != null) {
Log.d (TAG, ex.getLocalizedMessage() + "\n + Exception Code: " + ex.getCode());
}
});
И это, как я Запрос друзей:
Request.newMyFriendsRequest(ParseFacebookUtils.getSession(), new GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users, Response response) {
Log.d(TAG, "Request Completed!! " + response.toString() + "----" + users.size());
if (users != null) {
List<String> friendsList = new ArrayList<String>();
for (GraphUser user : users) {
friendsList.add(user.getId());
}
}
}
}).executeAsync();.
Но я не могу понять, как получить список друзей реального пользователь. С моим профилем он должен вернуть 1 друг, который также зарегистрирован с помощью приложения разрабатывается ...
У обоих пользователей есть разрешение пользователя user_friends на приложение? – WizKid
Вот и все! Я предполагаю, что на этих реальных пользователях я связался с FB, прежде чем добавить запрос разрешения для user_friends в логин. Я отсоединил профиль анализа из Facebook, вышел из системы, но всякий раз, когда я пытаюсь войти в систему и снова ссылку, он не запрашивает у меня разрешения и вместо этого пытается открыть последний сеанс, но он ответил ** Истек срок действия или недействительный маркер **. Кажется, что Parse фактически не отключает пользователя от facebook. Спасибо! – jdev
такой же проблема ... как о решении? – crossle