Lien profond avec Facebook Messenger

De beaucoup de search, j'ai trouvé que l'utilisation de fb-messenger://user-thread/ID peut être utilisé pour créer un lien profond vers Messenger et ouvrir le thread existant avec l'ID FB passé ou lancer un nouveau thread s'il n'existe pas.

Il apparaît à Messenger et ouvre un fil, mais le fil est avec Facebook User et n'envoie pas réellement. Voir l'image ci-dessous. En cliquant sur l'user Facebook dans l'en-tête va à une vue de détail avec l'image et le nom de l'user correct.

Comment est-ce que je fais ce travail correctement?

Comme WizKid (employé de FB) a dit ici :

… il n'y a pas de moyen documenté d'interagir avec … [Messenger] afin que tout ce que vous faites puisse se casser à tout moment.

Donc, dans cet esprit, il semble que fb-messenger://user-thread/ID a été déprécié. Cela étant dit, j'ai décompilé l'APK Facebook Android et trouvé une ligne:

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

Donc, d'après ce que je peux voir, on dirait que fb-messenger://user-thread/ID a été remplacé par fb-messenger://user/ID

Il y a aussi une ligne qui est:

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

Donc, fb-messenger://thread/ID peut aussi être valide. ID pourrait être un user ou un ID de fil, je n'ai pas creuser assez profond pour le savoir.

EDIT: L'URL Facebook actuelle est fb-messenger-public://user-thread/ID

Désolé de ramener cela des morts, mais il semble que Facebook Messenger a incorporé Universal Links pour ouvrir rapidement l'application Messenger.

 m.me/$USERNAME 

par exemple: http://m.me/zuck vous reliera universellement au message Zuckerberg.

J'ai joué avec quelques parameters, mais rien ne semblait pré-remplir le message.

Tout cela a changé. Facebook a publié des liens courts pour se connecter avec le profil Messenger d'une marque ou d'un user. Le moyen de lien direct est http://m.me/PROFILE ou PAGE_NAME

Si vous construisez des robots, vous pouvez également transmettre un paramètre de reference. J'ai écrit un tas sur ce lien dans les conversations Messenger .

Veuillez vérifier si vous avez correctement défini votre URL de lien profond selon la réponse suivante de Dev-iL

PS: notez que sa réponse est marquée pour android mais je soupçonne que les schémas d'URL ne seront pas très différents de ceux d'iOS.

Si vous voulez passer directement au code, voici:

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

Utilisez fb-messenger-public://user-thread/<ID> J'ai reçu mon ID de l' ID du destinataire dans la charge utile de l'application web facebook messenger. par exemple

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