Глубокая связь с Facebook Messenger
Из большого поиска я обнаружил, что использование fb-messenger://user-thread/ID
может использоваться для глубокой ссылки на Messenger и открытия существующего потока с переданным в FB ID или запуска нового потока, если он не существует.
Он появляется в Messenger и открывает поток, но поток имеет Facebook User
и фактически не отправляет. См. Изображение ниже. При нажатии на Facebook пользователь в заголовке переходит к подробному представлению с правильным изображением и именем пользователя.
Как я могу сделать эту работу правильно?
![]()
Ответы
Ответ 1
Как WizKid (сотрудник FB) сказал здесь:
... нет документального способа взаимодействия с... [Messenger], поэтому ничего вы можете сломаться в любую секунду.
Таким образом, это означает, что fb-messenger://user-thread/ID
устарел. При этом я декомпилировал Android APK Facebook и нашел строку:
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
также может быть действительным. Идентификатор может быть пользователем или идентификатором потока, я не выкопал достаточно глубоко, чтобы узнать.
EDIT:
Текущий адрес Facebook fb-messenger-public://user-thread/ID
Ответ 2
Извините, что вернул это из мертвых, но, похоже, Facebook Messenger включил Universal Links, чтобы быстро открыть приложение Messenger.
m.me/$USERNAME
например: http://m.me/zuck будет повсеместно связывать вас с сообщением Zuckerberg.
Я играл с парами param, но ничего, казалось, не заполнило сообщение.
Ответ 3
Все это изменилось. Facebook выпустил короткие ссылки для подключения к бренду или пользовательскому профилю Messenger. Способ прямой ссылки: http://m.me/PROFILE или PAGE_NAME
Если вы создаете боты, вы также можете передать параметр направления. Я написал кучу об этом который соединяется с чатами Messenger.
Ответ 4
Если вы хотите перейти непосредственно к коду, вот он:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://m.me/%ld", USER_ID]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
Ответ 5
Используйте fb-messenger-public://user-thread/<ID>
Я получил свой ID
из идентификатора получателя в полезной нагрузке веб-загрузчика в facebook. например.
{
"object": "page",
"entry": [
{
"id": "1163189980393936",
"time": 1500325170682,
"messaging": [
{
"sender": {
"id": ""
},
"recipient": {
"id": "ID"
},
"timestamp": 1500325170640,
"message": {
"mid": "mid.$cAAQh6kd9svBjg56V0FdUllNamImF",
"seq": 2888,
"text": "..."
}
}
]
}
]
}