通过大量搜索,我发现使用fb-messenger://user-thread/ID
可以使用深层链接到Messenger并使用传入的FB ID打开现有线程,或者如果不存在则启动新线程。
它弹出到Messenger并打开一个线程,但该线程与Facebook User
并没有实际发送。见下图。单击标题中的Facebook用户将转到具有正确用户图像和名称的详细视图。
如何正常工作?
答案 0 :(得分:22)
很抱歉从死里复活,但似乎Facebook Messenger已经整合了Universal Links以快速打开Messenger应用程序。
m.me/$USERNAME
例如:http://m.me/zuck会将您与Zuckerberg的消息联系起来。
我玩了几个参数,但似乎没有任何预先填写信息。
答案 1 :(得分:13)
...没有记录的方式可以与... [Messenger]进行交互 你可能会在任何时候休息。
所以考虑到这一点,听起来fb-messenger://user-thread/ID
已被弃用。话虽这么说,我反编译了Facebook Android APK并找到了一条线:
return Uri.parse((new StringBuilder("fb-messenger://user/")).append(Uri.encode(s)).toString());
从我所看到的情况来看,fb-messenger://user-thread/ID
似乎已被fb-messenger://user/ID
取代
还有一行:
return Uri.parse((new StringBuilder("fb-messenger://thread/")).append(Uri.encode(s)).toString());
所以fb-messenger://thread/ID
也可能有效。 ID可以是用户或线程ID,我没有深入挖掘以找出答案。
编辑:
目前的Facebook网址为fb-messenger-public://user-thread/ID
答案 2 :(得分:2)
所有这一切都发生了变化。 Facebook发布了与品牌或用户的Messenger个人资料相关联的短链接。直接链接的方式是http://m.me/PROFILE或PAGE_NAME
如果您正在构建机器人,您还可以传入引荐参数。我已经写了很多关于这个linking in to Messenger conversations的文章。
答案 3 :(得分:0)
如果你想直接跳转到代码,这里是:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
答案 4 :(得分:0)
使用fb-messenger-public://user-thread/<ID>
我从facebook messenger web hook有效负载中的收件人ID中获取了ID
。 e.g。
{
"object": "page",
"entry": [
{
"id": "1163189980393936",
"time": 1500325170682,
"messaging": [
{
"sender": {
"id": ""
},
"recipient": {
"id": "ID"
},
"timestamp": 1500325170640,
"message": {
"mid": "mid.$cAAQh6kd9svBjg56V0FdUllNamImF",
"seq": 2888,
"text": "..."
}
}
]
}
]
}