• Python webpy微信公众号开发之 回复图文消息


    新建图文回复模板reply_pictext.xml:

    $def with (toUser,fromUser,createTime,title1,description1,picurl1,url1)
    <xml>
    <ToUserName><![CDATA[$toUser]]></ToUserName>
    <FromUserName><![CDATA[$fromUser]]></FromUserName>
    <CreateTime>$createTime</CreateTime>
    <MsgType><![CDATA[news]]></MsgType>
    <ArticleCount>3</ArticleCount>
    <Articles>
    <item>
    <Title><![CDATA[$title1]]></Title>
    <Description><![CDATA[$description1]]></Description>
    <PicUrl><![CDATA[$picurl1]]></PicUrl>
    <Url><![CDATA[$url1]]></Url>
    </item>
    <item>
    <Title><![CDATA[$title1]]></Title>
    <Description><![CDATA[$description1]]></Description>
    <PicUrl><![CDATA[$picurl1]]></PicUrl>
    <Url><![CDATA[$url1]]></Url>
    </item>
    <item>
    <Title><![CDATA[$title1]]></Title>
    <Description><![CDATA[$description1]]></Description>
    <PicUrl><![CDATA[$picurl1]]></PicUrl>
    <Url><![CDATA[$url1]]></Url>
    </item>
    </Articles>
    </xml>

    更改WeixinInterface类
    class WeixinInterface:
    def __init__(self):
    self.app_root = os.path.dirname(__file__)
    self.templates_root = os.path.join(self.app_root, 'template')
    self.render = web.template.render(self.templates_root)



    def POST(self):

    str_xml = web.data() #获得post来的数据
    xml = etree.fromstring(str_xml)#进行XML解析
    msgType=xml.find("MsgType").text #text image voice event video shortvideo location
    fromUser=xml.find("FromUserName").text
    toUser=xml.find("ToUserName").text
    if msgType=='event':
    eventcont=xml.find("Event").text
    if eventcont=='subscribe':
    replayText = u'Hello,我是Amily,欢迎关注我的微信号'
    return self.render.reply_text(fromUser,toUser,int(time.time()),replayText)
    if eventcont == "unsubscribe":
    replayText = u'我现在功能还很简单,知道满足不了您的需求,但是我会慢慢改进,欢迎您以后再来'
    return self.render.reply_text(fromUser,toUser,int(time.time()),replayText)
    if msgType=='text':
    content=xml.find("Content").text
    if type(content).__name__ == "unicode":
    content = content.encode('UTF-8')
    Nword = youdao(content)
    return self.render.reply_text(fromUser,toUser,int(time.time()),u'有道翻译: '+Nword) #reply_text是我们用来回复用户的模板
    if msgType=='voice':
    return self.render.reply_pictext(fromUser,toUser,int(time.time()),'B区来自世界的商店','女王节到了,还不快去买礼物?','http://images2015.cnblogs.com/blog/785499/201603/785499-20160308110435429-590906761.png','http://www.bqu.com')

  • 相关阅读:
    几种 HtmlEncode 的区别
    Javascript 编程风格
    asp.net ckeditor 无法获取值
    Silverlight:Deep Zoom 文件格式概述
    js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器)
    什么是 HTTP Headers?
    ServerVariables
    SQL Server 查询不重复id的数据记录
    因为安全原因,文件不可浏览. 请联系系统管理员并检查CKFinder配置文件
    浏览器鼠标手势原理简析
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/5253536.html
Copyright © 2020-2023  润新知