深层链接到Facebook Messenger
从大量的search中,我发现使用fb-messenger://user-thread/ID
可以深度链接到Messenger,并用传入的FB ID打开现有的线程,或者在不存在的情况下启动一个新的线程。
它popup到Messenger并打开一个线程,但该线程与Facebook User
并没有实际发送。 看下面的图片。 单击标题中的Facebook用户将转到具有正确用户图像和名称的详细视图。
我如何使这个工作正确?
正如WizKid (FB员工) 在这里所说:
…没有文件logging的方式来与[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
已被replace为fb-messenger://user/ID
还有一条线是:
return Uri.parse((new StringBuilder("fb-messenger://thread/")).append(Uri.encode(s)).toString());
所以fb-messenger://thread/ID
也可能是有效的。 ID可能是一个用户或线程ID,我没有足够深入的发现。
编辑:目前的Facebookurl是fb-messenger-public://user-thread/ID
对不起,从死里复活,但似乎Facebook Messenger已合并通用链接快速打开Messenger应用程序。
m.me/$USERNAME
例如: http : //m.me/zuck将通用链接你的消息扎克伯格。
我玩了几个参数,但似乎并没有预先填好这个消息。
所有这一切都改变了。 Facebook发布了短链接来与品牌或用户的Messengerconfiguration文件进行连接。 直接链接的方式是http://m.me/PROFILE或PAGE_NAME
如果您正在构build漫游器,则还可以传递引荐参数。 我已经写了一些关于这个连接到Messenger对话 。
请检查您是否正确设置您的深层链接url,根据Dev-iL的以下回答
PS:请注意,他的答案被标记为Android,但我怀疑URLscheme将不会有很大的不同,从iOS的。
如果你想直接跳转到代码,这里是:
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 web hook负载中的收件人ID中获取了我的ID
。 例如
{ "object": "page", "entry": [ { "id": "1163189980393936", "time": 1500325170682, "messaging": [ { "sender": { "id": "" }, "recipient": { "id": "ID" }, "timestamp": 1500325170640, "message": { "mid": "mid.$cAAQh6kd9svBjg56V0FdUllNamImF", "seq": 2888, "text": "..." } } ] } ] }