从Xmpp中的电子邮件(或其他信息)中查找联系人



我目前正在开发一个Android应用程序,其中XMPP用于用户之间的通信。现在我需要添加一个从Facebook或电话联系人列表导入朋友的功能。
有谁知道如何完成此操作(也就是说,如果所有联系人都可用,如何找出哪些联系人正在使用我的应用程序以及他们的 JID 是什么)?

如果每个人都使用他们在 Facebook 上使用的相同电子邮件注册他们的帐户,并且您可以通过他们的电子邮件而不是他们的 JID 添加朋友,我可以看到如何做到这一点,但这似乎是一个愚蠢的假设,据我所知,你不能只用他们的电子邮件添加用户。

我正在使用asmack和Openfire服务器。

没有标准的方法可以从电子邮件地址推断出 XMPP 地址。

某些服务允许将同一地址用于电子邮件和 XMPP - 例如 gmail.com。检测给定域是否支持 XMPP 的一种方法是检查是否存在 SRV 记录,一种更黑客的方法是检查它是否正在侦听端口 5222/5269。

尽管如此,即使给定电子邮件地址并知道电子邮件主机也为 XMPP 提供服务并不能保证 user1@example.com 是电子邮件和 XMPP 的同一用户。不要问我为什么不会,但你不能做出假设。

说您只需要检查应用程序的其他用户。您可以存储自己的数据库,将帐户的电子邮件地址映射到 JID。我同意你的看法,这并不理想 - 但这正是大多数服务的工作方式。包括Facebook,除了他们拥有的数据远远超过你的电子邮件地址......

最新更新