2012-05-26 15 views
15

Estoy desarrollando una aplicación en la que el usuario puede compartir mensajes con sus amigos de Facebook. Estoy usando la API de Facebook para Android. Puedo autenticar al usuario, así como también puedo obtener mi lista de amigos como usuario de Facebook y también publicar un mensaje en la pared, pero estoy buscando enviar un mensaje privado a mis amigos y no encontré ninguna solución para eso, por lo que cualquier organismo puede ayudar, ¿cómo puedo lograr ...Enviar mensaje privado a mis amigos a través de mi aplicación de Android

Gracias de antemano

Saludos cordiales

+1

Posible duplicado: http://stackoverflow.com/questions/2574431/facebook-api-send-private-messages-to-friends –

Respuesta

7

no es posible enviar mensajes privados en el nombre del usuario que utiliza el API de gráficos.

No obstante, usted debería ser capaz de utilizar el Send Dialog, aunque no lo he probado en android, pero debe ser algo como:

Bundle params = new Bundle(); 
params.putString("to", "USER_ID"); 
params.putString("name", "TITLE HERE"); 
params.putString("link", "A URL"); // this link param is required 

facebook.dialog(context, "send", params, new DialogListener() { 
    @Override 
    public void onComplete(Bundle values) { 
     .... 
    } 

    @Override 
    public void onFacebookError(FacebookError error) {} 

    @Override 
    public void onError(DialogError e) {} 

    @Override 
    public void onCancel() {} 
}); 

Otro método que puede utilizar es la Chat API con el que puede envíe mensajes en nombre del usuario, requiere el permiso xmpp_login y usted para implementar un cliente xmpp.


Editar

Desde este cuadro de diálogo no se admite sin embargo, en Android, que tienen 3 opciones:

  1. Espere a facebook para poner en práctica el diálogo para Android.
  2. Intente abrir el cuadro de diálogo en un navegador (la url para eso está en los documentos) en el dispositivo móvil.
  3. Solicite el xmpp_login y agregue un cliente xmpp (es decir: asmack) y con eso puede implementar su propio cuadro de diálogo "Enviar mensaje".
+0

Gracias Para tu respuesta. ya utilicé el código anterior pero en el cuadro de diálogo Enviar dice "Este cuadro de diálogo actualmente no es compatible con dispositivos móviles". – Ramakrishna

+0

Eh, tenía miedo de eso (ya que no está en los documentos), pero valió la pena intentarlo. Edité mi respuesta con más información. –

+0

Bien, gracias. Voy a probar la segunda o tercera opción. – Ramakrishna

0

Puede utilizar MessengerUtils para enviar el mensaje con archivos adjuntos.

enter image description here

Puede enviar archivo adjunto con tipos MIME siguientes:

enter image description here

Código de ejemplo para enviar la imagen a continuación es como

String mimeType = "image/jpeg"; 

// contentUri points to the content being shared to Messenger 
ShareToMessengerParams shareToMessengerParams = 
     ShareToMessengerParams.newBuilder(contentUri, mimeType) 
       .build(); 

// Sharing from an Activity 
MessengerUtils.shareToMessenger(
     this, 
     REQUEST_CODE_SHARE_TO_MESSENGER, 
     shareToMessengerParams); 

enter image description here

Más documentación está en https://developers.facebook.com/docs/messenger/android

0

Es posible enviar mensajes privados de Facebook usando el siguiente código.

if (isPackageExisted("com.facebook.orca")) { 
     Uri uri = Uri.parse("fb-messenger://user/"); 
     uri = ContentUris.withAppendedId(uri, Long.parseLong("Enter user id here")); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } else { 
     Toast.makeText(this, "Please install facebook messenger", Toast.LENGTH_LONG).show(); 
    } 
} 

Comprobar Facebook Messenger es instalar o no

public boolean isPackageExisted(String targetPackage) { 
    PackageManager pm = getPackageManager(); 
    try { 
     PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA); 
    } catch (PackageManager.NameNotFoundException e) { 
     return false; 
    } 
    return true; 
} 
Cuestiones relacionadas