Soy nuevo en Android. Estoy buscando cargar foto a facebook por autorización, obteniendo access_token. ¿Como hacer esto? Por favor dame un código de muestra en Java.Subir foto a Facebook con Facebook SDK de Android en Android
Respuesta
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 la implementación de la API de ti mismo, aquí están los documentos que se ser útiles:
http://developers.facebook.com/docs/
Al mirar la aplicación FB, no veo ninguna forma de subir una imagen. Solo veo que puede pasar una URL de imagen como parámetro, pero no los datos de imagen en sí. ¿O he pasado por alto algo? –
cómo compartir más de una imagen a fb ... por favor ayuda – jyomin
acaba de publicar aquí la forma más sencilla de subir una foto:
android facebook publish photo
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
// e.g. "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á todo el código de probarlo que sin duda va a trabajar para usted y que es un trabajo para mí también
¿Qué es BaseRequestListener? –
Tu ejemplo funciona para mí. Pero adicionalmente quiero publicar el mensaje simple con esa publicación de fotos. Entonces, ¿cómo es posible? Alguna idea ? dar respuesta aquí .: http://stackoverflow.com/questions/8585043/android-how-to-post-the-message-with-the-image-post-on-facebook –
photos.upload no es un legado en desuso Método Rest Api? –
éxito que he subido las fotos en la pared de Facebook Utilicé 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
// e.g. "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
}
}
Surely Este código te ayudará.
He utilizado este código, y dieron como excepción java.lang.OutOfMemoryError \t en java.io.ByteArrayOutputStream.expand (ByteArrayOutputStream.java:103) \t en java.io.ByteArrayOutputStream.write (ByteArrayOutputStream .java: 234) \t en android.graphics.Bitmap.nativeCompress (método nativo) en esta línea bi.compress (Bitmap.CompressFormat.JPEG, 100, baos); – Manikandan
authenticatedFacebook es lo que ... me da un error ... por favor ayuda – jyomin
Hombre esto realmente me ayudó. Muchas gracias. – Mayur
Si desea publicar una foto con una descripción que puede 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);
}
+1 ¡Eso es todo! Gracias. Después de examinar a tantas personas que usan la API heredada, esta finalmente muestra la solución API api. –
- 1. keytool con Android Facebook SDK
- 2. Subir foto a álbum con Graph API de Facebook
- 3. video Añadir a Facebook en Android
- 4. Android Facebook SDK - Cómo consultar las notificaciones de Facebook
- 5. Buscando ejemplos SDK de Android Facebook
- 6. Subir vídeo a Facebook
- 7. Android Facebook SDK haciendo el error java.lang.NoClassDefFoundError
- 8. El contenedor referencias 'Android Dependencias' no biblioteca existente 'facebook-android-sdk \ facebook \ bin \ com_facebook_android.jar'
- 9. "Facebook no se puede resolver a un tipo" en Facebook SDK para Android
- 10. Cómo funciona el cierre de sesión en Facebook SDK Android
- 11. Configuración de Android SDK de Facebook en Eclipse
- 12. Cómo subir una imagen a Facebook
- 13. Facebook Android sdk throwing falta redirigir uri en Authetication
- 14. Facebook autenticación con el servidor usando Android
- 15. Facebook API cargar foto desde la URL
- 16. Android - SDK ventana de usuario de Facebook desaparecer
- 17. Facebook SDK para Android - La aplicación de ejemplo no funcionará
- 18. Android facebook autenticación
- 19. Android Facebook Intención
- 20. Facebook Android Intención
- 21. dificultad de importar el facebook-android-sdk eclipsó
- 22. Android Facebook SDK - ¿Cómo iniciar sesión como otro usuario?
- 23. Subir video al álbum de Facebook
- 24. Agregar contenido al diálogo de feed de Facebook desde Facebook SDK para Android
- 25. Publicación de datos de imágenes en bruto en lugar de URL con Android SDK de Facebook
- 26. Diseño de animación Android [Facebook]
- 27. microsoft facebook sdk
- 28. Facebook Javascript SDK security
- 29. Android Facebook y servidor web
- 30. Cómo integrar Facebook Connect con Android
Sanjana, debe aceptar una respuesta. Te ayuda a ti y a los demás que ayudan en Stack Overflow. Gracias. – trgraglia