【问题标题】:Send XMPP message with custom element in message stanza using SleekXMPP使用 SleekXMPP 在消息节中发送带有自定义元素的 XMPP 消息
【发布时间】:2023-03-15 04:10:02
【问题描述】:

我正在开发一个 XMPP 机器人,它将向发件人发送/回复一条消息,其中包含以下附加元素

<message to="user1@example.com" from="user2@example.com">
  <my_element_1>foo</my_element_1> 
  <my_element_2>bar</my_element_2>
  <body>Hi!</body>
</message>

我尝试使用 SleekXMPP ObjectIqMessage,但无法达到目标。此外,我还尝试使用send_message 方法。

我不确定我的谷歌搜索关键字是否不正确,但我找不到与此相关的任何文档或指南。但是,我确实找到了可能对插件创建相关的指南有所帮助。如果有人可以帮助我,将不胜感激。

谢谢

【问题讨论】:

    标签: python xmpp sleekxmpp


    【解决方案1】:

    我才意识到我的理解是不正确的。从技术上讲,要实现这一点,我只需要执行以下操作。

    # create XML for element 1
    element1 = ET.Element('my_element_1')
    element1.text = 'foo'
    
    # create XML for element 2
    element2 = ET.Element('my_element_2')
    element2.text = 'foo'
    

    如果需要,我可以简单地为 xml 添加子项。

    child = ET.Element('child-key')
    child.text = 'child-value'
    media.append(child)
    

    Message 对象中,我将追加如下

    msg = self.Message()
    msg.appendxml(element1)
    msg.appendxml(element2)
    msg.send()
    

    【讨论】:

    • 对于那些想知道ET 是什么的人,SleekXMPP 的stanzabase.py 的源代码说它是from xml.etree import cElementTree as ET。不是import xml.etree.ElementTree as ET
    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 2013-02-12
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多