Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Facebook sdk 3.1 for Android无法获得Facebook好友_Android_Facebook - Fatal编程技术网

使用Facebook sdk 3.1 for Android无法获得Facebook好友

使用Facebook sdk 3.1 for Android无法获得Facebook好友,android,facebook,Android,Facebook,在我的android应用程序中,Facebook好友通过单击按钮加载。我使用以下功能获取Facebook好友。但是,如果用户未授予发布权限,我将无法获取Facebook好友。会话将关闭。\u登录\u在授予发布权限后失败。如果发布权限已加载Facebook好友在列表视图中。我的代码有什么问题。请帮助我。提前感谢 private boolean hasPublishPermission() { Session session = Session.getActiveSession();

在我的android应用程序中,Facebook好友通过单击按钮加载。我使用以下功能获取Facebook好友。但是,如果用户未授予发布权限,我将无法获取Facebook好友。会话将关闭。\u登录\u在授予发布权限后失败。如果发布权限已加载Facebook好友在列表视图中。我的代码有什么问题。请帮助我。提前感谢

private boolean hasPublishPermission() {
        Session session = Session.getActiveSession();
        return session != null
                && session.getPermissions().contains("publish_stream");
    }

private void getFacebookFriends(final Session session) {
        Session msession = session;
        if (msession.isOpened()) {


            if (!hasPublishPermission()) {
                if (progressDlg != null) {
                    progressDlg.dismiss();
                }
                msession.requestNewPublishPermissions(new NewPermissionsRequest(
                        FindFriendsActivity.this, PERMISSIONS));
            } else {
                if (progressDlg != null) {
                    progressDlg.dismiss();
                }
                Request friendRequest = Request.newMyFriendsRequest(msession,
                        new GraphUserListCallback() {

                            public void onCompleted(List<GraphUser> users,
                                    Response response) {
                                fbfrndsDetails.clear();
                                isfindFriendsFromFB = false;
                                ArrayList<FriendsFinderRequest> data = new ArrayList<FriendsFinderRequest>();
                                for (int i = 0; i < users.size(); i++) {

                                    Log.d("name", "" + users.get(i).toString());

                                    FriendsDetails fbfrndDetail = new FriendsDetails();

                                    JSONObject jobj;
                                    try {
                                        jobj = users.get(i)
                                                .getInnerJSONObject();

                                        Log.e("name",
                                                "" + jobj.getString("name"));
                                        Log.e("id", "" + jobj.getString("id"));
                                        JSONObject ob = jobj
                                                .getJSONObject("picture");
                                        JSONObject obj = ob
                                                .getJSONObject("data");



                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }

                                }
                                if (progressDlg != null) {
                                    progressDlg.dismiss();
                                }


                            }
                        });
                Bundle params = new Bundle();
                params.putString("fields", "id,name,picture");
                friendRequest.setParameters(params);
                friendRequest.executeAsync();
            }

        } else {
            if (progressDlg != null) {
                progressDlg.dismiss();
            }
            Session.OpenRequest openRequest = null;
            openRequest = new Session.OpenRequest(FindFriendsActivity.this);
            if (openRequest != null) {

                openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);

                if (!hasPublishPermission()) {
                    openRequest.setPermissions(PERMISSIONS);
                }
                if (session.getState() == SessionState.CLOSED_LOGIN_FAILED) {

                    Session.setActiveSession(null);
                    msession = new Session(FindFriendsActivity.this);
                    Session.setActiveSession(msession);
                    msession.openForPublish(openRequest);
                } else {
                    session.openForPublish(openRequest);
                }
            }
        }


    }





private void onSessionStateChange(Session session, SessionState state,
            Exception exception) {



        if (state.isOpened()) {
            if (isfindFriendsFromFB) {
                rootLayout.setVisibility(View.GONE);
                progressDlg = ProgressDialog.show(FindFriendsActivity.this, "",
                        "Please wait");
                Request friendRequest = Request.newMyFriendsRequest(session,
                        new GraphUserListCallback() {

                            public void onCompleted(List<GraphUser> users,
                                    Response response) {
                                isfindFriendsFromFB = false;
                                ArrayList<FriendsFinderRequest> data = new ArrayList<FriendsFinderRequest>();
                                for (int i = 0; i < users.size(); i++) {

                                    Log.d("name", "" + users.get(i).toString());

                                    FriendsDetails fbfrndDetail = new FriendsDetails();

                                    JSONObject jobj;
                                    try {
                                        jobj = users.get(i)
                                                .getInnerJSONObject();

                                        Log.e("name",
                                                "" + jobj.getString("name"));
                                        Log.e("id", "" + jobj.getString("id"));
                                        JSONObject ob = jobj
                                                .getJSONObject("picture");
                                        JSONObject obj = ob
                                                .getJSONObject("data");




                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }

                                }
                                if (progressDlg != null) {
                                    progressDlg.dismiss();
                                }


                            }
                        });
                Bundle params = new Bundle();
                params.putString("fields", "id,name,picture");
                friendRequest.setParameters(params);
                friendRequest.executeAsync();

            }


        } else if (state.isClosed()) {
            if (progressDlg != null) {
                progressDlg.dismiss();
            }

        }
    }
private boolean hasPublishPermission(){
Session=Session.getActiveSession();
返回会话!=null
&&session.getPermissions()包含(“发布流”);
}
private void getFacebookFriends(最终会话){
会话msession=会话;
if(msession.isOpened()){
如果(!hasPublishPermission()){
if(progressDlg!=null){
progressDlg.discouse();
}
msession.requestNewPublishPermissions(新建权限请求(
FindFriendsActivity.this,PERMISSIONS));
}否则{
if(progressDlg!=null){
progressDlg.discouse();
}
Request-friendsrequest=Request.newMyFriendsRequest(msession,
新的GraphUserListCallback(){
未完成公共作废(列出用户,
回应(回应){
fbfrndsDetails.clear();
IsFindFromfB=false;
ArrayList数据=新的ArrayList();
对于(int i=0;i