深入链接到Facebook Messenger

时间:2015-08-02 22:00:28

标签: ios facebook facebook-graph-api deep-linking

通过大量搜索,我发现使用fb-messenger://user-thread/ID可以使用深层链接到Messenger并使用传入的FB ID打开现有线程,或者如果不存在则启动新线程。

它弹出到Messenger并打开一个线程,但该线程与Facebook User并没有实际发送。见下图。单击标题中的Facebook用户将转到具有正确用户图像和名称的详细视图。

如何正常工作?

5 个答案:

答案 0 :(得分:22)

很抱歉从死里复活,但似乎Facebook Messenger已经整合了Universal Links以快速打开Messenger应用程序。

m.me/$USERNAME

例如:http://m.me/zuck会将您与Zuckerberg的消息联系起来。

我玩了几个参数,但似乎没有任何预先填写信息。

答案 1 :(得分:13)

由于WizKid(FB员工)说here

  

...没有记录的方式可以与... [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/PROFILEPAGE_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": "..." } } ] } ] }