gpt4 book ai didi

c++ - 使用 Gloox 的 Facebook 聊天 XMPP 身份验证?

转载 作者:行者123 更新时间:2023-11-28 06:56:34 25 4
gpt4 key购买 nike

好吧,我可能在做一些愚蠢的事情,但在过去的几个小时里我一直在用这个把头撞在墙上,到目前为止我不知道我做错了什么。

目前我正在尝试使用 PLAIN SASL 来实现这一点,因为 Facebook 似乎积极地让 OAuth2 成为非 Web 应用程序的痛点,但它对我来说真的没有什么区别,只要我能让它发挥作用不知何故。

当前代码:

_client = new Client(JID(username /* no @chat.facebook.com */), password);

_client->setServer("chat.facebook.com");
_client->setPort(5222);

_client->setSASLMechanisms(gloox::SaslMechPlain);
_client->setTls(gloox::TLSPolicy::TLSRequired);

_client->connect(false);
_client->login(); // not necessary?

QThread::sleep(10); // arbitrary sleep; should be sufficient

std::cout << _client->authed() << std::endl; // false
std::cout << _client->authError() << std::endl; // AuthErrorUndefined

_client->rosterManager()->fill();

// neither one has any effect
MessageSession(_client, JID("friend@chat.facebook.com")).send("balls");
MessageSession(_client, JID("friend")).send("balls");

std::cout << _client->rosterManager()->roster()->size() << std::endl; // 0

编辑:就此而言,我也无法让 Gloox 与 Gmail 一起工作(没有尝试过任何其他 XMPP 服务器)。

最佳答案

  1. 您的 JID 确实是 username@chat.facebook.com ,不仅username - 这对 SASL 身份验证非常重要,它不会使用错误的 JID。
  2. Facebook 聊天支持通过 SSL/TLS 连接的 SASL PLAIN 身份验证以及 DIGEST-MD5
  3. Google talk 也支持基于 TLS 的 SASL PLAIN
  4. 您可以在第一个 <stream:features>...</stream:features> 中看到受支持的 SASL 机制来自服务器的数据包
  5. 如果能显示错误日志就更好了

关于c++ - 使用 Gloox 的 Facebook 聊天 XMPP 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23097843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com