我正在尝试使用新的 SDK(3.0)从 facebook 获取我的朋友列表。我面临与需要在 Bundle 中插入哪种参数以及如何使用 newMyFriendRequest 和 GraphAPI 相关的问题。
我没有在 facebook 文档上找到关于我们必须使用哪种字段的地方。基于GraphExplorer,我在我的 Bundle 中插入键“fields”,并将此字符串“id,name,friend”作为值。下面的代码显示了我现在正在做的事情。在我得到我的照片和名字后,我执行 newMyFriendRequest。我相信它默认使用 GraphAPI。
我在 StackOverflow 上看到了一些相关的帖子:
Facebook Android SDK 请求参数:在哪里可以找到文档?
它对我帮助不大,我不想使用 FQL。对于响应 II,我收到了这个 JSON,就像一个答案:
{Response: responseCode: 500, graphObject: null, error: {HttpStatus: 500, errorCode: 100, errorType: FacebookApiException, errorMessage: Unsupported operation}, isFromCache:false}
请注意,我是 Facebook SDK for Android 的新手。
private void onSessionStateChange(final Session session, SessionState sessionState, Exception ex){
if(session != null && session.isOpened()){
getUserData(session);
}
}
private void getUserData(final Session session){
Request request = Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if(user != null && session == Session.getActiveSession()){
pictureView.setProfileId(user.getId());
userName.setText(user.getName());
getFriends();
}
if(response.getError() !=null){
}
}
});
request.executeAsync();
}
private void getFriends(){
Session activeSession = Session.getActiveSession();
if(activeSession.getState().isOpened()){
Request friendRequest = Request.newMyFriendsRequest(activeSession,
new GraphUserListCallback(){
@Override
public void onCompleted(List<GraphUser> users,
Response response) {
Log.i("INFO", response.toString());
}
});
Bundle params = new Bundle();
params.putString("fields", "id,name,friends");
friendRequest.setParameters(params);
friendRequest.executeAsync();
}
}