Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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
Android-创建一个新的Facebook相册会创建两个相册_Android_Facebook - Fatal编程技术网

Android-创建一个新的Facebook相册会创建两个相册

Android-创建一个新的Facebook相册会创建两个相册,android,facebook,Android,Facebook,我正在使用以下代码创建一个新的facebook相册。它的作品-但它创造了专辑两次!它只在一个地方被调用,而不是在其他任何地方被调用 我拼命想弄明白为什么会发生这种事。这可能与会议有关吗?在OnCreate()中单击一个按钮即可调用创建新相册代码 以下是创建相册的代码: public void createNewAlbum(Session session, String albumName) { if (session.isOpened()) { SessionState state =

我正在使用以下代码创建一个新的facebook相册。它的作品-但它创造了专辑两次!它只在一个地方被调用,而不是在其他任何地方被调用

我拼命想弄明白为什么会发生这种事。这可能与会议有关吗?在OnCreate()中单击一个按钮即可调用创建新相册代码

以下是创建相册的代码:

public void createNewAlbum(Session session, String albumName) {
if (session.isOpened()) {

    SessionState state = session.getState();
    if (state.isOpened()) { //added this 

    Bundle params = new Bundle();
    params.putString("name", albumName);

    Request.Callback callback = new Request.Callback() {

        @Override
        public void onCompleted(Response response) {

            // use response id to upload photo to that album
            errText.setText("New Album created response: " + response.toString());

            //need to get the newly created album ID.
            try
            {
                JSONObject graphResponse =response.getGraphObject().getInnerJSONObject();

                try
                {
                    albID = graphResponse.getString("id");

                    //UPLOAD photos to that album
                    UploadToAlbum(Session.getActiveSession(), albID);
                }
                catch (JSONException e)
                {
                    Log.d( "JSON error "+ e.getMessage(), albID );
                    albID =null;
                }

            }
            catch (Exception e) {
                e.printStackTrace();
                albID = null;
            }
        }
    };


    Request request = new Request(session, "me/albums",params, HttpMethod.POST,callback);
    request.executeAsync();

    }//end state session is opened

    }//end session if
}
这里有什么明显的东西吗? 当活动加载时,我调用“LogInToFacebook()。 然后单击按钮并创建相册。
但它被创造了两次。创建了两个空相册,两个相册都有相同的ID。如果这里没有任何明显的信息,那么我也会发布我的登录代码,因为我真的不理解它。

事实证明,这是Facebooks GraphAPI中的一个大错误-该错误已分配给团队进行修复,但谁知道需要多长时间才能修复它

有人知道为什么会在这里创建两张相同的相册吗?我想我的问题可能类似于:为什么会多次执行请求,是否与回调有关?
public void createNewAlbum(Session session, String albumName) {
if (session.isOpened()) {

    SessionState state = session.getState();
    if (state.isOpened()) { //added this 

    Bundle params = new Bundle();
    params.putString("name", albumName);

    Request.Callback callback = new Request.Callback() {

        @Override
        public void onCompleted(Response response) {

            // use response id to upload photo to that album
            errText.setText("New Album created response: " + response.toString());

            //need to get the newly created album ID.
            try
            {
                JSONObject graphResponse =response.getGraphObject().getInnerJSONObject();

                try
                {
                    albID = graphResponse.getString("id");

                    //UPLOAD photos to that album
                    UploadToAlbum(Session.getActiveSession(), albID);
                }
                catch (JSONException e)
                {
                    Log.d( "JSON error "+ e.getMessage(), albID );
                    albID =null;
                }

            }
            catch (Exception e) {
                e.printStackTrace();
                albID = null;
            }
        }
    };


    Request request = new Request(session, "me/albums",params, HttpMethod.POST,callback);
    request.executeAsync();

    }//end state session is opened

    }//end session if
}