很抱歉又翻出这个旧话题,但似乎Facebook Messenger已经加入了通用链接,可以快速打开Messenger应用程序。
m.me/$USERNAME
例如:http://m.me/zuck 可以让您向 Zuckerberg 发送信息。......没有记录的方法可以与[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的URL是 fb-messenger-public://user-thread/ID
fb-messenger://user-thread/{user_id}
,其中 user_id
是数字 ID。fb-messenger//user/...
版本可以打开 Messenger 但无法打开对话。我无法让任何用户或线程 ID 与 fb-messenger://thread/...
形式配合使用。用户对话桌面和移动浏览器的等效形式看起来像是 https://www.facebook.com/messages/{user_id}
或 https://m.facebook.com/messages/read/?fbid={user_id}
。 - patricksurryfb-messenger-public://user-thread/ID
。 - saltwat5rPAGE_NAME
。使用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": "..."
}
}
]
}
]
}
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}