Вопрос по android, facebook – Загрузить изображение на Facebook с SD-карты в Android

0

Я не могу загрузить изображения в Facebook с SD-карты ... Я использовал приведенный ниже код ...., но он не выдал ошибку, но в то же время не загрузил изображения

     byte[] data = null;
     try {
         FileInputStream fis = new FileInputStream(filepath);
         BitmapFactory.Options options = new BitmapFactory.Options();                   
            options.inSampleSize = 2; 
         Bitmap bi = BitmapFactory.decodeStream(fis);

         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
         data = baos.toByteArray();  
      } catch (FileNotFoundException e) { 
         e.printStackTrace();
         Log.d("onCreate", "debug error  e = " + e.toString());
      }     

         Bundle params = new Bundle(); 
         params.putString("method", "photos.upload");  
         params.putByteArray("picture", data);

Ваш Ответ

2   ответа
0

 mAsyncRunner = new AsyncFacebookRunner(fbObj);  
  mAsyncRunner.request(null, parameters, "POST",
                        new RequestListener() {

                            @Override
                            public void onMalformedURLException(
                                    MalformedURLException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onIOException(IOException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onFileNotFoundException(
                                    FileNotFoundException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onFacebookError(FacebookError e,
                                    Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onComplete(String response, Object state) {
                                // TODO Auto-generated method stub
                                Log.i("upload", "image uploaded!!!! " + response);
                            }
                        }, null);
что это показывает в logcat? вставьте это здесь
{& quot; ошибка & quot;: {& quot; сообщение & quot;: & quot; активный маркер доступа должен быть использован для запроса информации о текущем пользователе. & quot; & quot; тип & quot; Tejas Golwala
Вы не авторизовались? вы напрямую загружаете картинки?
Я добавил этот код, но в диалоговом окне «Фейсбук» отображается сообщение «Произошла ошибка» и, пожалуйста, попробуйте позже. Tejas Golwala
Нет, я сделал логин .. Tejas Golwala
1

Преобразование изображения в растровое изображение и продолжить

private void postToWall() {   
    AsyncFacebookRunner mAsyncRunner = new   AsyncFacebookRunner(facebook);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, stream);  // where bm is bitmap from Sdcard
    byte[] byteArray = stream.toByteArray();
    Bundle param = new Bundle();
    param = new Bundle();
    param.putString("message", "All");
    param.putString("filename", "TEst");
    param.putByteArray("image", byteArray);
    mAsyncRunner.request("me/photos", param, "POST", new fbRequestListener(), null);
  }

  public class fbRequestListener implements RequestListener {

      @Override
      public void onComplete(String response, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+response);

      }

      @Override
      public void onIOException(IOException e, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      @Override
      public void onFileNotFoundException(FileNotFoundException e,
              Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      @Override
      public void onMalformedURLException(MalformedURLException e,
              Object state) {
          // TODO Auto-generated method stub

      }

      @Override
      public void onFacebookError(FacebookError e, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      }
@TejasGolwala Может быть истек срок действия access_token, попробуйте создать более новый и попробуйте ...
{"error": {"message": "Активный токен доступа должен использоваться для запроса информации о текущем пользователе.", "type": "OAuthException", "code" quot; 2500} Tejas Golwala
передать дополнительный параметр: param.putString (& quot; access_token & quot ;, & quot; Ваш токен доступа & quot;);
Зачем это нужно, когда я уже вошел в систему? во всяком случае, это выполнение запроса объекта Facebook, который мы авторизуем и уже имеем access_token
В некоторых случаях нам нужно запросить токен доступа, в этом случае я не уверен, что приведенный выше код работал для меня без запроса токена доступа .. Я думаю, проблема с access_token ..

Похожие вопросы