2012-01-21 17 views
5

Me gustaría saber si es posible y, de ser así, cómo puedo transmitir los datos de imágenes en bruto en lugar de especificar la URL a una imagen en la web cuando publico en mi ¿Muro de Facebook?Publicación de datos de imágenes en bruto en lugar de URL con Android SDK de Facebook

El código de trabajo ya tengo los resultados en esta:

http://1.bp.blogspot.com/-klSLFEmvHy0/TxpPMIay0xI/AAAAAAAAAKQ/iLZv-QtmThc/s1600/fbpost.JPG (lo siento, no tengo suficientes créditos para incrustar imágenes para abrir la URL favor :-)

¿Qué es lo que quiero moreorless con el título, título, enlaces, etc., pero mi objetivo final es hacer que la imagen en forma de corazón que se muestra arriba sea la que genera mi aplicación cada vez que un usuario decide publicar sus resultados en Facebook (los contenidos se generan dinámicamente en el imagen). No quiero implementar la carga de un servidor de terceros y luego compartir esa URL.

que he visto alrededor de la gente que se refieren al código como este:

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

pero que parece ser para subir fotos directamente a un disco que no es lo que yo quiero tampoco.

Mi código de trabajo hasta ahora es:

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

Respuesta

Cuestiones relacionadas