Глубокая связь с 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": "..." } } ] } ] }