Request.GraphUserListCallback 上的 onCompleted 未执行
onCompleted on Request.GraphUserListCallback doesn't get executed
我有这个方法,第一个日志打印,其他的没有
我做错了什么?
也就是这个: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;
}
看起来你不是 starting/executing 的请求。
您需要将 Request.newMyFriendsRequest(...)
的结果存储在一个变量中,然后对其调用 .executeAsync()
。
这在这里解释:https://developers.facebook.com/docs/android/graph#userdata
我有这个方法,第一个日志打印,其他的没有
我做错了什么?
也就是这个: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;
}
看起来你不是 starting/executing 的请求。
您需要将 Request.newMyFriendsRequest(...)
的结果存储在一个变量中,然后对其调用 .executeAsync()
。
这在这里解释:https://developers.facebook.com/docs/android/graph#userdata