【问题标题】:Creating a chat bot integrated with Google Talk preferably in Python or Go最好在 Python 或 Go 中创建与 Google Talk 集成的聊天机器人
【发布时间】:2013-01-21 19:24:52
【问题描述】:

这个问题在不同的时间以不同的形式被问过,
但由于事情随着时间的推移发生了很大的变化,而现有的答案一开始也不是很令人满意,我允许自己再问一次,

我想实现一个聊天机器人,让我们的团队能够回答查询和接受命令(大致类似于 Github 的 hubot),我想在 Google Talk 服务(内部的聊天服务Gmail 和其他地方),我宁愿在 AWS 上用 Python 或 Go 来做(而不是使用 Google App Engine),

我的问题是否有任何 Google 聊天客户端库在 python 或 Go out 那里,在过去一年中一直在积极开发?
非常感谢有关实施聊天机器人的任何建议。

我的计划是拥有一个 Google Talk 客户端,它一直在运行,等待人们与之交谈并解释他们的消息/命令(而不是运行服务器并处理用户身份验证)和...)

【问题讨论】:

    标签: python xmpp go google-talk


    【解决方案1】:

    Google Talk 服务基于 XMPP,但使用了一些 open but non-standard extensions,尽管这些都不是建立连接所必需的。任何符合标准的客户端都应该可以工作。

    引用https://developers.google.com/talk/open_communications#developer

    我是 IM 客户端的开发人员。如何连接到 Google Talk 服务?

    只要您遵守 XMPP 规范的要求,您就可以 能够连接到 Google Talk 服务。

    除了支持连接到 Google Talk 所需的 XMPP-Core 和 XMPP-IM 之外,没有什么特别之处。由于遗留原因,它甚至支持 SASL PLAIN 机制。


    目前在 Go 中没有很好的 XMPP 支持,可以说有几个铁杆在火上浇油,但都远未准备好投入生产,还有许多废弃的项目。使用已建立的 Python 库之一是您最好的选择。

    不用考虑太多,我会选择Twisted WordsWokkel

    【讨论】:

    • 如果可以的话,我相信 App Engine Go 运行时中有一个 Go xmpp 包。
    • @zmb 确实,asker 更喜欢 AWS 而不是 GAE。
    【解决方案2】:

    Google Talk 使用普通的XMPP 唯一的变化是它需要非标准化的身份验证方案才能以客户端身份登录他们的服务器(当时是X-GOOGLE-TOKEN SASL机制和now it's supposedly OAuth2) — 与 gtalk 服务器的服务器到服务器通信无需任何调整即可工作。

    请注意,您不妨考虑设置自己的 XMPP 服务器,因为有许多免费的 XMPP 服务器(ejabberd、prosody、openfire、jabberd2),并且在如果您希望人们能够直接从 Web UI 聊天。

    关于库,我听说在为 Python 编写支持网络的应用程序时使用 Twisted 框架很流行,所以看看@jnml 提到的what's available. go-xmpp 似乎甚至不支持中指定的最低要求核心 XMPP RFC。

    【讨论】:

    • X-GOOGLE-TOKEN 已弃用:stackoverflow.com/questions/12358429/… 并已被 X-OAUTH2 取代
    • GTalk 不需要非标准的身份验证来连接。
    • 我的印象是,从长远来看,机器人更容易(更可靠/易于维护)成为 Google Talk 客户端,而不是处理用户身份验证的 xmpp 服务器,并且安全和...
    • 根据谷歌:需要 TLS;旧版客户端支持 SASL PLAIN;如果不查看我目前无法进行的连接,我无法谈论 DIGEST-MD5。
    • 一旦建立了 TLS 会话,GTalk 就支持 PLAIN 身份验证。如果您启用了两步验证,则密码可以是帐户密码或应用程序专用密码。
    【解决方案3】:

    我知道的唯一可能符合条件的是mattn / go-xmpp

    【讨论】:

      猜你喜欢
      • 2010-11-16
      • 2022-08-08
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多