深层链接到 Facebook Messenger

Deep linking to Facebook Messenger

通过大量搜索,我发现使用 fb-messenger://user-thread/ID 可用于深入 link 到 Messenger 并使用传入的 FB ID 打开现有线程,如果没有,则启动一个新线程存在的。

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

如何使它正常工作?

作为WizKid (FB Employee) said here

...there is no documented way to interact with ... [Messenger] so anything you do may break at any second.

因此,考虑到这一点,听起来 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 URL 是 fb-messenger-public://user-thread/ID

很抱歉把它起死回生,但 Facebook Messenger 似乎已经整合了通用链接来快速打开 Messenger 应用程序。

m.me/$USERNAME

例如:http://m.me/zuck将普遍link你给扎克伯格发消息。

我尝试了几个参数,但似乎没有任何东西可以预先填充消息。

这一切都变了。 Facebook 发布了简短的 links 以连接品牌或用户的 Messenger 个人资料。指向link的方式是http://m.me/PROFILE或者PAGE_NAME

如果您正在构建机器人,您还可以传入一个推荐参数。我已经写了很多关于这个 linking in to Messenger conversations 的文章。

如果你想直接跳转到代码,这里是:

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

使用fb-messenger-public://user-thread/<ID> 我从 facebook messenger 网络挂钩负载中的收件人 ID 获得了我的 ID。例如

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