Найти контакт из электронной почты (или другой информации) в Xmpp

В настоящее время я работаю над приложением Android, в котором XMPP используется для связи между пользователями. Теперь мне нужно добавить функцию для импорта друзей из Facebook или списка контактов телефона.
Кто-нибудь знает, как это можно сделать (то есть, если все контакты доступны, как узнать, какие из них используют мое приложение и какой у них JID)?

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

Я использую asmack и сервер Openfire.


person Jave    schedule 02.05.2012    source источник


Ответы (1)


Не существует стандартного способа вывести адрес XMPP из адреса электронной почты.

Некоторые службы позволяют использовать один и тот же адрес для электронной почты и XMPP, например gmail.com. Один из способов определить, поддерживает ли данный домен XMPP, — это проверить наличие записей SRV, более хакерский способ - проверить, прослушивает ли он порт 5222/5269.

Тем не менее, даже если указан адрес электронной почты и известно, что хост электронной почты также обслуживает XMPP, это не гарантирует, что [email protected] является одним и тем же пользователем для электронной почты и XMPP. Не спрашивайте меня, почему этого никогда не будет, но вы не можете делать предположения.

Вы говорите, что вам нужно только проверить других пользователей вашего приложения. Вы можете хранить свою собственную базу данных, сопоставляя адреса электронной почты учетных записей с JID. Я согласен с вами, что это не идеально, но именно так работает большинство сервисов. Включая Facebook, за исключением того, что у них гораздо больше данных, чем просто ваш адрес электронной почты...).

person MattJ    schedule 03.05.2012
comment
Спасибо, это ответ на мой вопрос. Теперь мне просто нужно выяснить, как сделать часть базы данных. Надеюсь, я смогу повторно использовать базу данных, которую использует Openfire, поэтому мне не нужна копия. - person Jave; 03.05.2012