Sube una foto a Facebook con Facebook Android SDK en Android

Soy nuevo en Android. Estoy buscando la foto de la carga a facebook por la autorización, consiguiendo el access_token. ¿Como hacer esto? Por favor, dame un código de ejemplo en Java.

Acaba de publicar aquí la forma sencilla de subir una foto:

Android facebook publicar foto

Código:

byte[] data = null; Bitmap bi = BitmapFactory.decodeFile(photoToPost); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); data = baos.toByteArray(); Bundle params = new Bundle(); params.putString("method", "photos.upload"); params.putByteArray("picture", data); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); 
 facebook.authorize(FbdemoActivity.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() { @Override public void onComplete(Bundle values) { } @Override public void onFacebookError(FacebookError error) { } @Override public void onError(DialogError e) { } @Override public void onCancel() { } }); public void postImageonWall() { byte[] data = null; Bitmap bi = BitmapFactory.decodeFile("/sdcard/viewitems.png"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); data = baos.toByteArray(); Bundle params = new Bundle(); params.putString(Facebook.TOKEN, facebook.getAccessToken()); params.putString("method", "photos.upload"); params.putByteArray("picture", data); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); } public class SampleUploadListener extends BaseRequestListener { public void onComplete(final String response, final Object state) { try { // process the response here: (executed in background thread) Log.d("Facebook-Example", "Response: " + response.toString()); JSONObject json = Util.parseJson(response); final String src = json.getString("src"); // then post the processed result back to the UI thread // if we do not do this, an runtime exception will be generated // eg "CalledFromWrongThreadException: Only the original // thread that created a view hierarchy can touch its views." } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } } @Override public void onFacebookError(FacebookError e, Object state) { // TODO Auto-generated method stub } } 

Aquí está el código entero intentarlo trabajará definitivamente para usted y es trabajo para mí también

La forma más fácil para usted es utilizar el SDK existente, algo así:
http://github.com/facebook/facebook-android-sdk/
http://code.google.com/p/fbconnect-android/
http://wiki.developers.facebook.com/index.php/User:Android

La forma más flexible es implementar la API usted mismo, aquí están los documentos que serán útiles:
http://developers.facebook.com/docs/

Si quieres publicar una foto con una descripción puedes hacer esto:

 public void publishPhoto(byte[] imgData, string message) { AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner (facebook); Bundle parameters = new Bundle (); parameters.putString (Facebook.TOKEN, facebook.getAccessToken()); parameters.putString ("message", message); parameters.putByteArray ("source", imgData); mAsyncRunner.Request ("me/photos", parameters, "POST", new RequestListener (), null); } 

Con éxito he subido las fotos en la pared de facebook He utilizado el siguiente código.

En su Actividad Principal haga lo siguiente;

 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub authenticatedFacebook.authorize(Facebooktest2Activity.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() { @Override public void onComplete(Bundle values) { postImage(); Toast.makeText(getApplicationContext(), "Image Posted on Facebook.", Toast.LENGTH_SHORT).show(); } @Override public void onFacebookError(FacebookError error) { } @Override public void onError(DialogError e) { } @Override public void onCancel() { } }); } }); } public void postImage(){ byte[] data = null; Bitmap bi = BitmapFactory.decodeFile("/sdcard/img.jpg"); //Bitmap bi = BitmapFactory.decodeResource(getResources(), R.drawable.icon); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); data = baos.toByteArray(); Bundle params = new Bundle(); params.putString(Facebook.TOKEN, authenticatedFacebook.getAccessToken()); params.putString("method", "photos.upload"); params.putByteArray("picture", data); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(authenticatedFacebook); mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); } public class SampleUploadListener extends BaseKeyListener implements RequestListener { public void onComplete(final String response, final Object state) { try { // process the response here: (executed in background thread) Log.d("Facebook-Example", "Response: " + response.toString()); JSONObject json = Util.parseJson(response); final String src = json.getString("src"); // then post the processed result back to the UI thread // if we do not do this, an runtime exception will be generated // eg "CalledFromWrongThreadException: Only the original // thread that created a view hierarchy can touch its views." } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } } public void onFacebookError(FacebookError e, Object state) { // TODO Auto-generated method stub } public Bitmap getInputType(Bitmap img) { // TODO Auto-generated method stub return img; } @Override public int getInputType() { // TODO Auto-generated method stub return 0; } @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 onMalformedURLException(MalformedURLException e, Object state) { // TODO Auto-generated method stub } } 

Seguramente este código te ayudará.

  • ¿Cómo puedo agregar una imagen de contacto dentro de ContentProviderOperation?
  • Declarado constante para el tamaño de la foto de contacto de Android?
  • Subir foto / foto / imagen facebook (android)
  • ¿Cómo puedo crear efectos de fotos en Android?
  • ¿Cómo enviar una foto a Instagram usando mi aplicación de Android?
  • Datos Exif TAG_ORIENTATION siempre 0
  • Asegúrese de que las fotos se guardan con la misma orientación que se tomaron?
  • Longitud y latitud del GPS de la foto geotiquetada
  • Cómo guardar las fotos tomadas en una carpeta específica?
  • Una "Antes y Después" comparación de imágenes Slide Control en Andorid
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.