Compartir un anuncio de pared por facebook android sdk

Hola, soy nuevo en la programación de android. Quiero compartir una imagen con alguna descripción en facebook. He intentado explicar cada método en las respuestas sobre stackoverflow. Mi problema es abrir el diálogo de Facebook, pero no tiene parámetros de paquete especificados. Por favor, ayúdame con esto. Ya he probado casi 20 fragmentos de código diferentes. Por favor, dame código completamente funcional.

@Override public void onClick(View v) { fb = new Facebook(app_id); Bundle par = new Bundle(); par.putString("name", "Ass"); fb.dialog(con,"feed",par, new DialogListener(){ @Override public void onCancel() { // TODO Auto-generated method stub } @Override public void onComplete(Bundle arg0) { // TODO Auto-generated method stub } @Override public void onError(DialogError arg0) { // TODO Auto-generated method stub } @Override public void onFacebookError(FacebookError arg0) { // TODO Auto-generated method stub }}); } }); } 

One Solution collect form web for “Compartir un anuncio de pared por facebook android sdk”

¿Ya ha configurado el lado de facebook de la aplicación en la página de desarrollo? Usted necesita tener su aplicación registrada en facebook si tiene la intención de usar su api y / o hacer las solicitudes de gráficos o wall posts en nombre de un usuario authtoken.

Usted debe leer este tutorial (verifique la parte 5 para el registro de aplicación fb) y toda la información relacionada a su alrededor para realmente ir con la interacción de facebook dentro de su aplicación. Sé que lo hice y termino creando mi propia biblioteca para el inicio de sesión de atajos o solicitudes de gráficos, etc … no es tan simple, que te llevará un poco de tiempo también.

También;

¿Está utilizando el loginButton de la sdk? Me gusta esto:

 <com.facebook.widget.LoginButton android:id="@+id/authButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" /> 

Maneja automáticamente el acceso de usuario a facebook si tiene la aplicación facebook instalada o no y recupera un resultado de estado de sesión (onStatusChange callback). Asegúrese de manejar primero ese derecho y que la sesión se inicia correctamente.

Sin embargo, publicar su registro nos dará una mejor idea de lo que se encuentra con.

Tengo que decir, tho, que el api de facebook para Android es bastante sólido hasta el momento por lo que debe estar haciendo algo mal para seguro.

EDIT: >>>>>>

Ok entonces, suponiendo que tiene el usuario correctamente conectado (session.getActiveSession () == Session.OPENED creo), el siguiente paso es asegurarse de que habilitado permisos necesarios. Este ejemplo es de la documentación oficial de facebook, pruébalo (ejecuta publishStory () en tu aplicación):

 private void publishStory() { Session session = Session.getActiveSession(); if (session != null){ // Check for publish permissions List<String> permissions = session.getPermissions(); if (!isSubsetOf(PERMISSIONS, permissions)) { pendingPublishReauthorization = true; Session.NewPermissionsRequest newPermissionsRequest = new Session .NewPermissionsRequest(this, PERMISSIONS); session.requestNewPublishPermissions(newPermissionsRequest); return; } Bundle postParams = new Bundle(); postParams.putString("name", "Facebook SDK for Android"); postParams.putString("caption", "Build great social apps and get more installs."); postParams.putString("description", "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps."); postParams.putString("link", "https://developers.facebook.com/android"); postParams.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png"); Request.Callback callback= new Request.Callback() { public void onCompleted(Response response) { JSONObject graphResponse = response .getGraphObject() .getInnerJSONObject(); String postId = null; try { postId = graphResponse.getString("id"); } catch (JSONException e) { Log.i(TAG, "JSON error "+ e.getMessage()); } FacebookRequestError error = response.getError(); if (error != null) { Toast.makeText(getActivity() .getApplicationContext(), error.getErrorMessage(), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity() .getApplicationContext(), postId, Toast.LENGTH_LONG).show(); } } }; Request request = new Request(session, "me/feed", postParams, HttpMethod.POST, callback); RequestAsyncTask task = new RequestAsyncTask(request); task.execute(); } private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) { for (String string : subset) { if (!superset.contains(string)) { return false; } } return true; } 

El código emite un POST a la pared de alimentación de usuarios con los parámetros de gráfico especificados en el paquete. Si la sesión no tiene los permisos de publicación necesarios, se emitirá una solicitud de permiso en su lugar. Si el usuario concedió esos permisos, entonces el RequestAsyncTask debería ejecutarse la próxima vez que llame al método.

Como se puede ver, la idea básica es que el usuario se conecte con su cuenta de Facebook (primer paso), luego solicite los permisos necesarios para la acción, en este caso, publique los permisos para una publicación en la pared (segundo paso) y, por último Emita una petición de gráfico en "me / feed" con los parámetros necesarios para el poste de la pared.

En cualquier caso, si aún te encuentras con problemas, intenta depurar de tu registro, ya que indica si la solicitud ha fallado debido a sesión no válida o sin permisos, etc.

Publique su registro aquí en ese caso, pero esto debería funcionar.

  • El inicio de sesión de Android facebook no funciona con la aplicación de Facebook instalada
  • Token AccessToken: ACCESS_TOKEN_REMOVED en Facebook SDK de Android
  • Java.lang.IllegalStateException: Orca SharedPreferences utilizado antes de inicializado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.