Android: невозможно загрузить изображение в альбом facebook

Я писал код для загрузки изображения в альбом facebook «Изображения профиля», после выбора изображения из галереи оно преобразуется в массив байтов imageBytes и отправляется в AsyncTask. Я использую следующий код для загрузки изображения. facebookProfileImagesAlbumId имеет идентификатор альбома "Изображения профиля"

 Bundle params_ = new Bundle();
 String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);

 params_.putString("source", encodedImage);
 /* make the API call */
 new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/"+facebookProfileImagesAlbumId+"/photos",
        params_,
        HttpMethod.POST,
        new GraphRequest.Callback() {
              public void onCompleted(GraphResponse response) {
                   Log.i("Login", response.toString());
              }
        }).executeAndWait();

но он не работает и Log.i("Login", response.toString()); выдает следующее сообщение

{Ответ: responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: не удалось создать тело запроса}}

Я использую Facebook Graph API 2.4.


person Sarath Babu    schedule 20.08.2015    source источник


Ответы (1)


Я использовал следующий код для публикации изображения на стене facebook или в конкретном альбоме.

public void PostImage(Bitmap bitmap) {
        AccessToken token = AccessToken.getCurrentAccessToken();
        if (token != null) {
            Bundle parameters = new Bundle(2);
            parameters.putParcelable("source", bitmap);
            parameters.putString("message", "description");
            new GraphRequest(token, "/"+facebookProfileImagesAlbumId+"/photos", parameters, HttpMethod.POST, new GraphRequest.Callback() {

                public void onCompleted(GraphResponse response) {
                    Log.e("Image Post", "Res =" + response.toString());
                }
            }).executeAsync();
        }
    }

Надеюсь это поможет!

person Rajesh    schedule 20.08.2015
comment
но получаю другую ошибку {Response: responseCode: 403, graphObject: null, error: {HttpStatus: 403, errorCode: 220, errorType: OAuthException, errorMessage: (# 220) Альбом или альбомы не видны}}, я знаю, что это не связано кодировать - person Sarath Babu; 20.08.2015
comment
Значение facebookProfileImagesAlbumId правильное? или сначала просто попробуйте me/photos вместо /+facebookProfileImagesAlbumId+/photos. - person Rajesh; 20.08.2015
comment
Вы больше не можете загружать в альбом изображений профиля пользователя. Вы можете загружать только в альбом, созданный для вашего приложения (Facebook сделает это автоматически, если вы разместите сообщение в /me/photos), а затем пользователь может выбрать использование этого изображения в качестве нового изображения своего профиля через пользовательский интерфейс Facebook. - person CBroe; 20.08.2015