2015-08-02 15 views
14

Из большого поиска я обнаружил, что с помощью fb-messenger://user-thread/ID можно использовать глубокую ссылку на Messenger и открыть существующий поток с переданным в FB ID или начать новый поток, если он не существует.Глубокая ссылка на Facebook Messenger

Он подходит к Messenger и открывает нить, но нить с Facebook User и фактически не отправляет. См. Изображение ниже. Щелчок Facebook Пользователь в заголовке переходит к подробному представлению с правильным изображением и именем пользователя.

Как это сделать правильно?

+0

Пожалуйста, имейте в виду, что Facebook всегда меняет свои планы время от времени, поэтому убедитесь, что вы не даете ему критическую роль в вашей системе. –

ответ

13

Как WizKid (FB Employee) сказал here:

... нет документально способ взаимодействия с ... [Посланника] так ничего вы можете разорваться в любой второй.

Таким образом, это звучит так: 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

Там также линия Thats:

return Uri.parse((new StringBuilder("fb-messenger://thread/")).append(Uri.encode(s)).toString()); 

Так что fb-messenger://thread/ID может быть действительным. Идентификатор может быть пользователем или идентификатором потока, я не выкопал достаточно глубоко, чтобы узнать.

EDIT: Текущий URL Facebook является fb-messenger-public://user-thread/ID

+0

Спасибо за то, что вы нашли подходящий ответ. Вероятно, не стоит вставлять один из этих URL-адресов в производственное приложение и подвергать его риску в любое время. К сожалению, это не более открыто для стороннего использования. Ну хорошо – Chris

+0

Счастлив помочь, извините, я не мог дать вам ответ, на который вы надеялись. Если вы создаете собственное приложение, вы можете позвонить в приложение, используя новый SDK iOS https://developers.facebook.com/docs/messenger/ios – Parker

+0

Odd. Я обнаружил, что версия пользовательского потока является единственной, которая открыла для меня фактический разговор, то есть 'fb-messenger: // user-thread/{user_id}' где 'user_id' - числовой идентификатор. Версия 'fb-messenger // user/...' открыла мессенджер, но не разговор. Я не мог заставить пользователя или идентификатор потока работать с формой 'fb-messenger: // thread/...'. Эквиваленты настольных компьютеров и мобильных браузеров для пользовательской беседы выглядят так: https://www.facebook.com/messages/ {user_id} 'или' https://m.facebook.com/messages/read/?fbid={user_id} ' – patricksurry

19

К сожалению, чтобы принести это обратно из мертвых, но мне кажется, что Facebook Посланника включил Всеобщие ссылки на быстром открыть приложение Messenger.

m.me/$USERNAME 

, например: http://m.me/zuck будет повсеместно связать вас сообщение Цукерберг.

Я играл с парами параметров, но ничто, казалось, не заполнило сообщение.

+1

Удивительно, приятно знать! Спасибо за обмен :) – Chris

+0

Кто-нибудь знает способ использования этого с идентификаторами пользователя Facebook вместо имен пользователей? Я получаю «Имя пользователя не было» при использовании этого с идентификаторами Facebook :( – owencm

2

Все это изменилось. Facebook выпустил короткие ссылки для подключения к бренду или пользовательскому профилю Messenger. Способ прямой связи: http://m.me/PROFILE или PAGE_NAME

Если вы строите ботов, вы также можете передать реферальный параметр. Я написал кучу об этом linking in to Messenger conversations.

0

Если вы хотите, чтобы перейти к коду непосредственно, здесь:

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

Использование fb-messenger-public://user-thread/<ID> Я получил 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": "..." } } ] } ] }

Смежные вопросы