puedo porque movil lite funciona entrar desde descargar celular carga abrir android facebook android-intent

porque - Abra la página de Facebook en la aplicación de Facebook(si está instalada) en Android



no puedo entrar a facebook desde mi celular (6)

Esta pregunta ya tiene una respuesta aquí:

Me gustaría abrir mi página de Facebook desde mi aplicación de Android, si la aplicación de Facebook está disponible, si no: esta página debería estar abierta en el navegador predeterminado.

para esto probé el siguiente código:

try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/MY_PAGE_ID")); startActivity(intent); } catch (Exception e) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/MY_PAGE_NAME"))); }

El problema es: tengo aquí un dispositivo Android con la versión más nueva de Facebook. Si quisiera abrir desde mi aplicación la página de Facebook, la aplicación de Facebook se abrirá, pero sin mi página.

Solo veo el mensaje:

Problemas para cargar la línea de tiempo.

¿Qué está mal?


Aquí hay una solución que mezcla el código de Jared Rummler y AndroidMechanic .

Nota: fb://facewebmodal/f?href= redirige a una página extraña de Facebook que no tiene el me gusta y otros botones importantes, por eso pruebo fb://page/ . Funciona bien con la versión actual de Facebook (126.0.0.21.77, 1 de junio de 2017). La captura puede ser inútil, la dejé por si acaso.

public static String getFacebookPageURL(Context context) { final String FACEBOOK_PAGE_ID = "123456789"; final String FACEBOOK_URL = "MyFacebookPage"; if(appInstalledOrNot(context, "com.facebook.katana")) { try { return "fb://page/" + FACEBOOK_PAGE_ID; // previous version, maybe relevant for old android APIs ? // return "fb://facewebmodal/f?href=" + FACEBOOK_URL; } catch(Exception e) {} } else { return FACEBOOK_URL; } }

Aquí está la función appInstalledOrNot que tomé (y modifiqué) de la respuesta de Aerrow a esta publicación

private static boolean appInstalledOrNot(Context context, String uri) { PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); return true; } catch(PackageManager.NameNotFoundException e) { } return false; }

Cómo obtener la identificación de Facebook de una página:

  1. Ir a tu página
  2. Haga clic derecho y View Page Source
  3. Buscar en la página: fb://page/?id=
  4. ¡Aqui tienes!

Bien, modifiqué el código de @AndroidMechanics, porque en los dispositivos donde Facebook está deshabilitado, la aplicación se bloquea.

Aquí está el getFacebookUrl modificado:

public String getFacebookPageURL(Context context) { PackageManager packageManager = context.getPackageManager(); try { int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode; boolean activated = packageManager.getApplicationInfo("com.facebook.katana", 0).enabled; if(activated){ if ((versionCode >= 3002850)) { return "fb://facewebmodal/f?href=" + FACEBOOK_URL; } else { return "fb://page/" + FACEBOOK_PAGE_ID; } }else{ return FACEBOOK_URL; } } catch (PackageManager.NameNotFoundException e) { return FACEBOOK_URL; } }

¡Lo único agregado es mirar si la aplicación está deshabilitada o no si está deshabilitada, la aplicación llamará al navegador web!


Esto funciona en la última versión:

Vaya a https://graph.facebook.com/ ( https://graph.facebook.com/fsintents por ejemplo).

Copie su identificación Use este método:

public static Intent getOpenFacebookIntent(Context context) { try { context.getPackageManager().getPackageInfo("com.facebook.katana", 0); return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>")); } catch (Exception e) { return new Intent(Intent.ACTION_VIEW,Uri.parse("https://www.facebook.com/<user_name_here>")); } }


"fb://page/ no funciona con las versiones más recientes de la aplicación FB. Debería usar fb://facewebmodal/f?href= para las versiones más recientes.

Este es un código de trabajo completo actualmente en vivo en una de mis aplicaciones:

public static String FACEBOOK_URL = "https://www.facebook.com/YourPageName"; public static String FACEBOOK_PAGE_ID = "YourPageName"; //method to get the right URL to use in the intent public String getFacebookPageURL(Context context) { PackageManager packageManager = context.getPackageManager(); try { int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode; if (versionCode >= 3002850) { //newer versions of fb app return "fb://facewebmodal/f?href=" + FACEBOOK_URL; } else { //older versions of fb app return "fb://page/" + FACEBOOK_PAGE_ID; } } catch (PackageManager.NameNotFoundException e) { return FACEBOOK_URL; //normal web url } }

Este método devolverá la url correcta para la aplicación si está instalada o la url web si la aplicación no está instalada.

Luego comienza una intención de la siguiente manera:

Intent facebookIntent = new Intent(Intent.ACTION_VIEW); String facebookUrl = getFacebookPageURL(this); facebookIntent.setData(Uri.parse(facebookUrl)); startActivity(facebookIntent);

Eso es todo lo que necesitas.


Ya he respondido aquí y está funcionando para mí, consulte este enlace https://.com/a/40133225/3636561

String socailLink="https://www.facebook.com/kfc"; Intent intent = new Intent(Intent.ACTION_VIEW); String facebookUrl = Utils.getFacebookUrl(getActivity(), socailLink); if (facebookUrl == null || facebookUrl.length() == 0) { Log.d("facebook Url", " is coming as " + facebookUrl); return; } intent.setData(Uri.parse(facebookUrl)); startActivity(intent);

Consulte el enlace para obtener la parte de descanso.


puedes usar esto:

try { Intent followIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=" + "https://www.facebook.com/app_scoped_user_id/"+scoped user id+"/")); activity.startActivity(followIntent); } catch (Exception e) { activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/" + user name))); String errorMessage = (e.getMessage() == null) ? "Message is empty" : e.getMessage(); }

atención: puede obtener una identificación de usuario con alcance desde el permiso de " enlace " facebook api