我有这种方法和第一个日志打印,其他人没有
我做错了什么?
就是这样:Log.d(" insideGetFriends"," in");获取打印,我查看了我的日志,
Log.d(" facebookError",Integer.toString(graphUsers.size()));其余的行不会被执行。
public ArrayList<ParseUser> getFriends(Session session)
{
Log.d("insideGetFriends","in");
final ArrayList<ParseUser> users=new ArrayList<>();
Request.newMyFriendsRequest(session,new Request.GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> graphUsers, Response response) {
Log.d("facebookError",Integer.toString(graphUsers.size()));
for(GraphUser user:graphUsers)
{
String facebookId=user.getId();
Log.d("facebookFriend",facebookId);
ParseQuery<ParseUser> query=ParseUser.getQuery();
query.whereEqualTo("facebookID",facebookId);
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> parseUsers, ParseException e) {
users.add(parseUsers.get(0));
}
});
}
}
});
return users;
}
答案 0 :(得分:7)
看起来您没有开始/执行请求。
您需要将Request.newMyFriendsRequest(...)
的结果存储在变量中,然后在其上调用.executeAsync()
。
这在此解释:https://developers.facebook.com/docs/android/graph#userdata