2012-01-21 10 views
5

Chciałbym wiedzieć, czy jest to możliwe, a jeśli tak, to w jaki sposób mogę przesłać surowe dane obrazu zamiast podawania adresu URL do obrazu w Internecie podczas publikowania Ściana Facebooka?Wysyłanie nieprzetworzonych danych obrazu zamiast adresu URL za pomocą pakietu Android Facebook SDK

Kod roboczego Obecnie mam wyniki w ten sposób:

http://1.bp.blogspot.com/-klSLFEmvHy0/TxpPMIay0xI/AAAAAAAAAKQ/iLZv-QtmThc/s1600/fbpost.JPG (Niestety nie mam wystarczająco dużo punktów, aby osadzić zdjęcia więc otworzyć URL proszę :-)

Który moreorless co chcę z podpisem, tytułem, linkami itp., ale moim głównym celem jest sprawienie, by wyświetlany obraz w kształcie serca był wydrukowany, który moja aplikacja generuje za każdym razem, gdy użytkownik decyduje się opublikować wyniki na Facebooku (zawartość jest dynamicznie generowana na obraz). Nie chcę zaimplementować przesyłania serwera stron trzecich, a następnie udostępnić tego adresu URL.

Widziałem wokół ludzi odnoszących się do kodu tak:

... 
    byte[] data = null; 
    Bitmap bi = BitmapFactory.decodeFile(imagePath); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    data = baos.toByteArray(); 
    params.putByteArray(... 

ale to wydaje się być na przesyłanie zdjęć bezpośrednio do albumu, który nie jest to, co chcę, albo.

Mój kod roboczego tak daleko jest:

private void loginAndPostToFacebook() { 
    mFacebook = new Facebook(FACEBOOK_APP_ID); 

    mFacebook.authorize(this, new String[] { "publish_stream" }, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) { 
      postOnWall(); 
     } 

     @Override 
     public void onFacebookError(FacebookError error) { 
      L.t(getString(R.string.error_facebook_error) + ": " + error.getMessage()); 
     } 

     @Override 
     public void onError(DialogError e) { 
      L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage()); 
     } 

     @Override 
     public void onCancel() { 
     } 
    }); 
} 

public void postOnWall() { 
    Bundle params = new Bundle(); 

    // Message 
    params.putString("message", "my msg"); 

    // Name 
    params.putString("name", "app name"); 

    // Caption 
    params.putString("caption", "caption"); 

    // Description 
    params.putString("description", "description"); 

    // Here's where I'd insert my dynamically generated image data...  
    params.putString("picture", "http://4.bp.blogspot.com/-VaNzm3xMOtk/TxpKzhxpdEI/AAAAAAAAAKI/08Kc5b4HW0Q/s1600/sexometer128x128neutral_icon.png");   

    // Link 
    params.putString("link", "http://www.stackoverflow.com"); 

    try { 
     String response = mFacebook.request("me"); 
     response = mFacebook.request("me/feed", params, "POST"); 
     if (response == null || response.equals("") || response.equals("false")) { 
      L.t(getString(R.string.error_facebook_error) + ": blank response"); 
      return; 
     } else if (response.toLowerCase().contains("error")) { 
      L.t(getString(R.string.error_facebook_error) + ": " + response); 
      return; 
     } 
    } catch(Exception e) { 
     L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage()); 
     return; 
    } 

    L.t(getString(R.string.success_posted_to_facebook)); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (mFacebook != null) { 
     mFacebook.authorizeCallback(requestCode, resultCode, data); 
    } 
} 

Odpowiedz

Powiązane problemy