pandolia / qqbot

QQBot: A conversation robot base on Tencent's SmartQQ
Other
3.68k stars 877 forks source link

xml结构化信息发送 #52

Closed qqdaiyu55 closed 7 years ago

qqdaiyu55 commented 7 years ago

支持xml信息的发送吗(会解析为卡片的),还是说smartqq不支持?

pandolia commented 7 years ago

具体什么样的信息?我试一下看看

qqdaiyu55 commented 7 years ago

Example:

<?xml version="1.0" encoding="utf-8"?>
<msg templateID="12345" action="web" brief="TEST" serviceID="1" url="http://koukuko.com">
    <item layout="1">
        <title>layout="1"</title>
        <summary>title,summary,picture各占一行均可重复使用,按照Element顺序显示</summary>
        <picture cover="http://placekitten.com/250/100"/>
    </item>
</msg>

Preview: Image

pandolia commented 7 years ago

写了个脚本测试了一下:

s = '''\
<?xml version="1.0" encoding="utf-8"?>
<msg templateID="12345" action="web" brief="TEST" serviceID="1" url="http://koukuko.com">
    <item layout="1">
        <title>layout="1"</title>
        <summary>title,summary,picture各占一行均可重复使用,按照Element顺序显示</summary>
        <picture cover="http://placekitten.com/250/100"/>
    </item>
</msg>\
'''

from qqbot import QQBot
bot = QQBot()
bot.Login()
bot.Send('buddy', 'Jack', s)

这时 Jack 收到的是一段文本。效果是下面这样的:

qq 20170223215257

pandolia commented 7 years ago

貌似发不了, xml 应该还需要进一步处理之后再发送,这样才能在对方的 qq 客户端上被显示为卡片。就是不知道这种卡片消息的具体格式是怎么样的,肯定不是这段 xml 原文那么简单。

qqdaiyu55 commented 7 years ago

是的,单纯文本方式发送不出来的,要经过协议层的处理,格式可以参考QQ的XML消息格式整理

pandolia commented 7 years ago

那个链接我看了一下,讲的还是xml的结构,没有讲消息的底层格式。 可能 smartqq 协议只能发文本消息。