services program play google development developers developer develope blog androiddev ios facebook facebook-graph-api deep-linking

ios - program - Enlace profundo a Facebook Messenger



https developers google com android google play services (5)

Tras realizar muchas búsquedas, descubrí que el uso de fb-messenger://user-thread/ID se puede usar para vincular en profundidad a Messenger y abrir el hilo existente con el ID de FB pasado o iniciar un nuevo hilo si no existe.

Aparece en Messenger y abre un hilo, pero el hilo es con el Facebook User y no se envía realmente. Ver imagen abajo. Al hacer clic en Usuario de Facebook en el encabezado, se accede a una vista detallada con la imagen y el nombre correctos del usuario.

¿Cómo hago para que esto funcione correctamente?


Como WizKid (Empleado de FB) here :

... no hay una forma documentada de interactuar con ... [Messenger], por lo que cualquier cosa que hagas puede fallar en cualquier segundo.

Así que con eso en mente, suena como fb-messenger://user-thread/ID ha quedado en desuso. Dicho esto, descompilé el Android APK de Facebook y encontré una línea:

return Uri.parse((new StringBuilder("fb-messenger://user/")).append(Uri.encode(s)).toString());

Entonces, por lo que puedo ver, parece que fb-messenger://user-thread/ID ha sido reemplazado con fb-messenger://user/ID

También hay una línea que es:

return Uri.parse((new StringBuilder("fb-messenger://thread/")).append(Uri.encode(s)).toString());

Así que fb-messenger://thread/ID puede ser válido. ID podría ser un usuario o ID de hilo, no profundicé lo suficiente como para averiguarlo.

EDITAR: la URL actual de Facebook es fb-messenger-public://user-thread/ID


Lamento traer esto de vuelta de entre los muertos, pero parece que Facebook Messenger ha incorporado Universal Links para abrir rápidamente la aplicación Messenger.

m.me/$USERNAME

por ejemplo: http://m.me/zuck lo vinculará universalmente al mensaje Zuckerberg.

Jugué con un par de params, pero nada parecía rellenar el mensaje.


Si quieres saltar al código directamente, aquí está:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }


Todo esto ha cambiado. Facebook lanzó enlaces cortos para conectarse con la marca o el perfil de Messenger del usuario. La forma de vincular directamente es http://m.me/PROFILE o PAGE_NAME

Si está creando bots, también puede pasar un parámetro de referencia. He escrito un montón sobre este enlace en las conversaciones de Messenger .


Use fb-messenger-public://user-thread/<ID> Obtuve mi ID del ID del destinatario en la carga útil de la web de Facebook Messenger. p.ej

{ "object": "page", "entry": [ { "id": "1163189980393936", "time": 1500325170682, "messaging": [ { "sender": { "id": "" }, "recipient": { "id": "ID" }, "timestamp": 1500325170640, "message": { "mid": "mid.$cAAQh6kd9svBjg56V0FdUllNamImF", "seq": 2888, "text": "..." } } ] } ] }