在 Facebook Chat 中识别 Chat 客户端应用

Posted

技术标签:

【中文标题】在 Facebook Chat 中识别 Chat 客户端应用【英文标题】:Identify Chat client app in Facebook Chat 【发布时间】:2012-06-30 05:04:12 【问题描述】:

我正在使用 XMPP 开发 ios Facebook 聊天客户端应用程序(我使用的是 Robbie Hanson 的 XMPPFramework)。我的要求之一是我的应用程序想知道我名册中的在线用户是否使用同一个应用程序。 (所以用例是在两个用户使用同一个App进行通信时提供一些额外的功能)。

我正在考虑将我的应用程序名称添加到 JID 的资源部分(例如 <...>@chat.facebook.com/myApp),以便我的应用程序可以使用它通过检查 JID 来识别自己在线用户。但是,当我查看收到的 JID 时,我找不到任何方法,它们只是 <...>@chat.facebook.com。

那么有谁知道是否可以为 Facebook 聊天设置资源,或者是否有其他方法可以实现我想要的?

非常感谢。

比利

【问题讨论】:

【参考方案1】:

为此使用资源不是一个好主意。有很多服务可以控制资源。同样,您会发现有一天您要编写另一个名称不同的客户端,并且只实现您期望从您的一个客户端提供的一些功能。

首先,多读几遍XEP-0115。大多数第一次阅读它的人都会感到困惑,所以请耐心等待它点击进入。

接下来,使用单独的 URI 描述您的客户端的每一项单独功能。在您的功能哈希中使用这些功能 URI。如果您必须检查客户端的实际身份,请使用 caps 节点 URI 进行匹配。

【讨论】:

嗨,乔,非常感谢您的提示。我会好好看看 XEP-0115。我唯一担心的是 Facebook Chat 支持的 XMPP 功能非常有限,我想知道它是否支持该扩展。 只要他们的服务器不删除扩展,你就不需要服务器支持。

以上是关于在 Facebook Chat 中识别 Chat 客户端应用的主要内容,如果未能解决你的问题,请参考以下文章

Rocket.Chat 传入 Webhook:以特定响应回答(用于 facebook 集成)

获取 Facebook Chat 的在线状态

chat.facebook.com 在跨域策略文件响应的末尾不发送零字节

Facebook Chat Open Graph 图像代码解析

android 在 facebook 聊天中使用 smack api

XMPP 与 Facebook Chat 集成,使用 Python