Android 如何从facebook获取好友列表

Android 如何从facebook获取好友列表,android,facebook,facebook-graph-api,Android,Facebook,Facebook Graph Api,我正在尝试从Facebook获取好友列表,但无法获取好友列表。我尝试了不同的代码,但我总是得到空的响应。即使我像美味的应用程序一样运行sample,我也不会得到好友列表。有人建议我使用“我/我的朋友”,但仍然没有得到朋友列表 所以我真的很想知道是否有可能从Facebook上获取好友列表。如果是,请给我指路 public class MainActivity extends Activity { private final static String TAG = "MainActivit

我正在尝试从Facebook获取好友列表,但无法获取好友列表。我尝试了不同的代码,但我总是得到空的响应。即使我像美味的应用程序一样运行sample,我也不会得到好友列表。有人建议我使用
“我/我的朋友”
,但仍然没有得到朋友列表

所以我真的很想知道是否有可能从Facebook上获取好友列表。如果是,请给我指路

public class MainActivity extends Activity {

    private final static String TAG = "MainActivity";

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);   

        Session.openActiveSession(this, true, new Session.StatusCallback(){

            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {

                requestMyAppFacebookFriends(session);

            }

        });


      }

      private Request createRequest(Session session) {
            Request request = Request.newGraphPathRequest(session, "me/taggable_friends", null);

            Set<String> fields = new HashSet<String>();
            String[] requiredFields = new String[] { "id", "name", "picture"};
            fields.addAll(Arrays.asList(requiredFields));

            Bundle parameters = request.getParameters();
            parameters.putString("fields", TextUtils.join(",", fields));
            request.setParameters(parameters);

            return request;
        }


      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);

                   Log.v(TAG, "friends list size "+friends.size());
                }
            });
            friendsRequest.executeAsync();
        }

      private List<GraphUser> getResults(Response response) {
            GraphMultiResult multiResult = response.getGraphObjectAs(GraphMultiResult.class);
            GraphObjectList<GraphObject> data = multiResult.getData();
            return data.castToListOf(GraphUser.class);
        }

      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
      }
公共类MainActivity扩展活动{
私有最终静态字符串TAG=“MainActivity”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Session.openActiveSession(此为true,新Session.StatusCallback(){
@凌驾
公共无效调用(会话、会话状态、,
例外情况(例外情况){
请求MyAppFaceBookFriends(会话);
}
});
}
私有请求createRequest(会话){
Request-Request=Request.newGraphPathRequest(会话“me/taggable_-friends”,null);
Set fields=new HashSet();
字符串[]requiredFields=新字符串[]{“id”、“名称”、“图片”};
fields.addAll(Arrays.asList(requiredFields));
Bundle parameters=request.getParameters();
parameters.putString(“fields”,TextUtils.join(“,”,fields));
请求。设置参数(参数);
返回请求;
}
私有void请求MyAppFaceBookFriends(会话){
请求friendsRequest=createRequest(会话);
friendsRequest.setCallback(new Request.Callback()){
@凌驾
未完成公共无效(响应){
列出好友=获取结果(响应);
Log.v(标记“好友列表大小”+friends.size());
}
});
friendsRequest.executeAsync();
}
私有列表getResults(响应){
GraphMultiResult multiResult=response.getGraphObjectAs(GraphMultiResult.class);
GraphObjectList数据=multiResult.getData();
返回data.castToListOf(GraphUser.class);
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
Session.getActiveSession().onActivityResult(此、请求代码、结果代码、数据);
}

Facebook在2.0版中做了一些重大更改。其中一个更改是获取好友列表。以前我们可以使用
/me/friends
获取好友列表,但此端点不适用于v2.0

您使用了正确的API-
/me/taggable\u friends
,但问题是,在您的live应用程序中使用此API时,需要先通过facebook进行审核。说明了如何提交审核


出于测试目的,请将您的应用程序切换到开发模式或仅使用开发者/管理员/测试人员帐户测试应用程序;否则您将得到一个空白响应。

当然有可能,但您必须解释这一点。api是
/me/taggable\u friends
,但请详细说明,以便我们可以帮助您。您使用的api版本和其他版本详细信息。至少显示一些代码。我的意思是,即使我从facebookSDK示例运行示例代码,我也不会获得frinedlist列表。实际上,我希望获得所有facebook好友的displaypicture、name、id,并在列表或网格视图中显示他们。我使用的是sdk的3.15.0版本。但我只想访问个人资料图片、电子邮件id、好友id或者这些你不需要登录审查。你需要朋友的详细信息,对吗?是的,你需要审查。我不知道如何说服你我已经创建了测试应用程序,但我仍然得到空响应简单地说,这是不可能的。检查Graph API Explorer中的响应“仅电子邮件”?在任何情况下,您都不会收到用户朋友的电子邮件,这将是一个重大的隐私问题。以防您想这样做。对于授权用户的电子邮件,您必须使用电子邮件权限。