Cómo publicar en la pared de Facebook con Facebook android SDK, sin abrir el cuadro de diálogo

Estoy utilizando facebook sdk y con la ayuda del ejemplo dado con ese SDK he desarrollado un código para iniciar sesión y almacenar access_token en base de datos

Tengo dos problemas:

1). Cuando intento obtener access_token de la base de datos y pasarlo a facebook no me permite publicar en la pared con ese ejemplo dado con ese sdk de facebook, ¿por qué es así ??

2). He ido a través de ese código facebook.java, pero lo que tengo es que para publicar en una pared tengo que abrir un cuadro de diálogo, ya que no hay otro método para pasar mi mensaje de inmediato y enviar. Por favor, díganme la solución hacia ella o tel me wat ¿Debo hacer cuando quiero publicar en una pared sin abrir un cuadro de diálogo

mPostButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { String message = "Post this to my wall"; Bundle params = new Bundle(); params.putString("message", message); mAsyncRunner.request("me/feed", params, "POST", new WallPostRequestListener()); } }); public class WallPostRequestListener extends BaseRequestListener { public void onComplete(final String response) { Log.d("Facebook-Example", "Got response: " + response); String message = "<empty>"; try { JSONObject json = Util.parseJson(response); message = json.getString("message"); } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } final String text = "Your Wall Post: " + message; Example.this.runOnUiThread(new Runnable() { public void run() { mText.setText(text); } }); } } 

Lo que está mal con el código anterior .. su no publicar en la pared y me da Wall Post: vacío en el teléfono y el emulador de ambos

Gracias por adelantado..

I aplicado código siguiente y podría publicado con éxito mi mensaje en la pared.

 public void postOnWall(String msg) { Log.d("Tests", "Testing graph API wall post"); try { String response = mFacebook.request("me"); Bundle parameters = new Bundle(); parameters.putString("message", msg); parameters.putString("description", "test test test"); response = mFacebook.request("me/feed", parameters, "POST"); Log.d("Tests", "got response: " + response); if (response == null || response.equals("") || response.equals("false")) { Log.v("Error", "Blank response"); } } catch(Exception e) { e.printStackTrace(); } } 

He actualizado mi tutorial en http://www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/ y ahora está respondiendo exactamente a esta pregunta. Se basa en y básicamente lo mismo que la respuesta de Ankit, pero guía a la gente de principio a fin mediante la implementación de todo el proceso.

Bueno, no es que algo se publica en la pared sin informar al usuario. Cuando el usuario permite su aplicación, el Android Facebook sdk presenta otra página, donde hay un texto que envía sus aplicaciones, y un textBox donde el usuario puede escribir en su pared, similar a la captura de pantalla que he adjuntado

El diseño real en el dispositivo móvil es ligeramente diferente, pero está en el mismo formato. Este proceso se muestra bien en los ejemplos de ejemplos de facebook android sdk.

Ahora compruebe la pregunta hecha en este post:

Facebook Connect Android – usando stream.publish @ http://api.facebook.com/restserver.php '> Facebook Connect Android – usando stream.publish @ http://api.facebook.com/restserver.php

En esa pregunta busque estos: postParams.put (), tipo similar de líneas estará allí en algunos de sus archivos JAVA. Estas son las líneas con las que puedes publicar los datos en Facebook.

Por ejemplo:

 postParams.put("user_message", "TESTING 123"); 

Es el mensaje,

postParams.put("attachment", "{\"name\":\"Facebook Connect for Android\",\"href\":\"http://code.google.com/p/fbconnect-android/\",\"caption\":\"Caption\",\"description\":\"Description\",\"media\":[{\"type\":\"image\",\"src\":\"http://img40.yfrog.com/img40/5914/iphoneconnectbtn.jpg\",\"href\":\"http://developers.facebook.com/connect.php?tab=iphone/\"}],\"properties\":{\"another link\":{\"text\":\"Facebook home page\",\"href\":\"http://www.facebook.com\"}}}");

Es la línea donde está proporcionando icono para la aplicación, descripción, título, título, etc

texto alternativo

He utilizado el código de Ankit para publicar en la pared de facebook, pero su código me da error android.os.NetworkOnMainThreadException .

Después de buscar en este problema una solución me dijo que poner su código en AsyncTask para deshacerse de este problema. Después de modificar su código, funciona bien para mí.

El código modificado se ve así:

 public class UiAsyncTask extends AsyncTask<Void, Void, Void> { public void onPreExecute() { // On first execute } public Void doInBackground(Void... unused) { // Background Work Log.d("Tests", "Testing graph API wall post"); try { String response = facebook.request("me"); Bundle parameters = new Bundle(); parameters.putString("message", "This test message for wall post"); parameters.putString("description", "test test test"); response = facebook.request("me/feed", parameters, "POST"); Log.d("Tests", "got response: " + response); if (response == null || response.equals("") || response.equals("false")) { Log.v("Error", "Blank response"); } } catch(Exception e) { e.printStackTrace(); } return null; } public void onPostExecute(Void unused) { // Result } } 

Esta clase me ayuda a enviar mensajes en mi pared de Facebook SIN diálogo:

 public class FBManager{ private static final String FB_ACCESS_TOKEN = "fb_access_token"; private static final String FB_EXPIRES = "fb_expires"; private Activity context; private Facebook facebookApi; private Runnable successRunnable=new Runnable(){ @Override public void run() { Toast.makeText(context, "Success", Toast.LENGTH_LONG).show(); } }; public FBManager(Activity context){ this.context = context; facebookApi = new Facebook(FB_API_ID); facebookApi.setAccessToken(restoreAccessToken()); } public void postOnWall(final String text, final String link){ new Thread(){ @Override public void run(){ try { Bundle parameters = new Bundle(); parameters.putString("message", text); if(link!=null){ parameters.putString("link", link); } String response = facebookApi.request("me/feed", parameters, "POST"); if(!response.equals("")){ if(!response.contains("error")){ context.runOnUiThread(successRunnable); }else{ Log.e("Facebook error:", response); } } } catch (Exception e) { e.printStackTrace(); } } }.start(); } public void save(String access_token, long expires){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Editor editor=prefs.edit(); editor.putString(FB_ACCESS_TOKEN, access_token); editor.putLong(FB_EXPIRES, expires); editor.commit(); } public String restoreAccessToken(){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); return prefs.getString(FB_ACCESS_TOKEN, null); } public long restoreExpires(){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); return prefs.getLong(FB_EXPIRES, 0); } 

}

  • Facebook Login CallbackManager ¿No se llama FacebookCallback?
  • Android: Facebook 3.0 Publicar en la pared de los amigos usando la respuesta de solicitud de FQL (A partir de Apr23,2013)
  • Usando ParseFacebookUtils.logInWithReadPermissionsInBackground no guarda los permisos de Facebook Android
  • Android Facebook SDK 4.5.0 Login-Logout Problema Invalid Key Hash Error, al intentar iniciar sesión nuevamente
  • Compartir texto vía Intent en Facebook sin utilizar Facebook sdk
  • Buck - java.lang.UnsatisfiedLinkError: no pudo encontrar "libjni.so". ¿Cómo resolverlo?
  • Tecla de hash de Facebook al usar el estudio de Android
  • Publicar en el muro de Facebook del usuario no funciona cuando se instala la aplicación de Facebook en el dispositivo / emulador
  • Inicio de sesión de Facebook con la aplicación no instalada redirecciona a la página de inicio de sesión
  • ¿Es posible tener acceso a la galería de Facebook y dejar que el usuario seleccione una imagen?
  • Cómo obtener notificación de estado en tiempo real con Facebook SDK a través de escuchas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.