2012-01-21 15 views
5

Mümkün olup olmadığını bilmek isterim ve eğer gönderim sırasında web'de bir görüntü URL'si belirtmek yerine ham görüntü verilerini nasıl iletebilirim? Facebook duvarı mı?Android Facebook SDK ile URL yerine ham resim verileri gönderme SDK

çalışma kodu Şu anda bu sonuçları vardır:

http://1.bp.blogspot.com/-klSLFEmvHy0/TxpPMIay0xI/AAAAAAAAAKQ/iLZv-QtmThc/s1600/fbpost.JPG (üzgünüm ben :-) böylece URL açmak resimlerini lütfen gömmek için yeterli krediniz yok benim istediğim moreorless olduğunu

altyazı, başlık, bağlantılar vb. ile birlikte benim nihai hedefim, yukarıda görüntülenen kalp şeklindeki görüntünün, kullanıcının sonuçları Facebook’a göndermeye karar verdiği her defasında oluşturduğu çıktı biçiminde olmasını sağlamaktır (içerikler dinamik olarak oluşturulur). resim). Üçüncü taraf bir sunucuyu yüklemek ve daha sonra bu URL'yi paylaşmak istemiyorum.

böyle koduna atıfta insanların etrafında gördüm:

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

ama ben de istiyorum ne değildir bir albüme doğrudan fotoğraf yüklemek için gibi görünüyor.

Benim uyguladığım kodu şimdiye kadar geçerli: Benim anlayış

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); 
    } 
} 

cevap