如何为 Facebook 设置返回 JSON 的 XMPP 服务器?

Posted

技术标签:

【中文标题】如何为 Facebook 设置返回 JSON 的 XMPP 服务器?【英文标题】:How do I setup an XMPP server for Facebook that returns JSON? 【发布时间】:2014-01-15 23:49:00 【问题描述】:

简而言之,这就是我想做的事情:

    查询类似 www.mysite.com/?action=GetOnlineList&access_token=[Facebook Token] 的 URL 让该 URL 以 JSON 格式返回用户的所有在线 Facebook 好友列表

然后我还可以执行一些其他操作,例如“SendMessage”和“GetMessages”。

我已经阅读了一段时间,到目前为止我已经收集到我需要 XMPP/Jabber 来执行此操作,但我不知道从哪里开始。

创建 OpenFire 服务器可以让我这样做吗?我根本不熟悉 XMPP,所以我不知道如何从服务器吐出 JSON 数据。我可以在 OpenFire 服务器上设置这样的查询吗?

【问题讨论】:

【参考方案1】:

您不需要像 Openfire 那样运行完整的 XMPP 服务器,您希望作为客户端连接到 Facebook(与用户一样)。

您需要两个组件;首先,您需要浏览器中的一些代码从 Facebook 的 XMPP 服务器请求信息。但是,您不能直接从浏览器直接连接到 Facebook 的 XMPP(它们仅支持标准套接字上的 XMPP),因此您还需要其他东西:服务器上的某种代理,以便您的代码通过它进行连接。

对此有一些现成的解决方案,您可以在服务器上运行Strophe.js 和BOSH connection manager。这允许您登录用户的 Facebook 聊天并使用 XMPP 获取您需要的信息。确保您使用独立的 BOSH 代理,许多 XMPP 服务器(如 Openfire、Prosody、ejabberd)都有自己的 BOSH 接口,但这些接口不允许您连接到 Facebook。

既然您说您需要 JSON,那么您可能更愿意尝试一些替代方案,例如 xmpp-ftw 或 stanza.io。这两者都允许您仅通过 JSON 处理 XMPP 服务器,而 xmpp-ftw 特别合适,因为它甚至包括您需要的代理部分(使用node.js)。它有详细记录的简单命令,您唯一需要学习的是一些 XMPP 基础知识,例如术语(“roster”是您的联系人列表,“presence”是某人的状态等)。

【讨论】:

谢谢马特,这应该足以让我开始。感谢您的深入回应!

以上是关于如何为 Facebook 设置返回 JSON 的 XMPP 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 HTTPS 配置 503 状态?

如何为 JQUERY 数据表返回 JSON 数据?

默认情况下如何为 Visual Studio Web API 返回 json

如何为 Android 项目生成 swapi-graphql 的 Schema.json?

如何为未经授权的 AJAX 调用而不是登录页面返回 JSON 响应作为 AJAX 响应?

如何为 System.Text.Json.JsonSerializer 全局设置默认选项?