玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

python微信平台自动回复信息如何写

就是比方有用户加了关注之后 并没有发送任何消息 然后由后台主动发送一条欢迎信息 微信中有内嵌被关注这个事件吗 还是有其他的方法 我找到一个类似的文章 但是是php的 也没怎么看懂 麻烦有没有用python的高人可以解释一下怎么做啊

传送门http://www.cnblogs.com/txw1958/archive/2013/04/01/weixin-if26-subscribe.html

被用户关注之后,微信会发送一个 MsgType 为 Event 、Event 为 subscribe 的事件(你给的文章里已经写到了啊)

用 Bottle 写出来的话,大概是这样的:

from bottle import Bottle, request, response
from xml.etree import ElementTree

app = Bottle()


@app.post('/')
def handle():
    xml = request.body.read()
    msg = dict((child.tag, to_unicode(child.text))
              for child in ElementTree.fromstring(xml))
    if msg.get("MsgType", None) == "Event" and msg.get("Event", None) == "subscribe":
        #被用户关注
        pass

为什么不用框架开发呢?比如 WeRoBot

推荐werobot

捕获MsgType,如果为event,表明这是一个subscribe的事件,就可以这样处理:

# 纯文本格式
textTpl = """<xml>
         <ToUserName><![CDATA[%s]]></ToUserName>
         <FromUserName><![CDATA[%s]]></FromUserName>
         <CreateTime>%s</CreateTime>
         <MsgType><![CDATA[text]]></MsgType>
         <Content><![CDATA[%s]]></Content>
         <FuncFlag>0</FuncFlag>
         </xml>"""
# 判断MsgType内容,如果等于"event",表明是一个新关注用户
if msg["MsgType"] == "event":
    echostr = textTpl % (
        msg['FromUserName'], msg['ToUserName'], str(int(time.time())),
        u"这里替换为你想返回给用户的信息")
    return echostr

微信关注后会发送一个关注的事件,你只要捕获这个事件给预回复就好了?不会python,下面这个是我用着的,php写的。

public function receiveEvent($object){
    $recEve = $object->Event;
    if($recEve == 'subscribe'){
        $contentStr='感谢关注XXXXXX。';
    }
    $resultStr = $this->transmitText($object,$contentStr);
    return $resultStr;
}

回完帖子才点了一下你那个链接,发现方法是一样的。请问你哪里不懂呢?

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd20077.html [复制]



我要小额赞助,鼓励作者写出更好的教程↓↓↓

玩蛇网Python QQ群,欢迎加入: ① 279974227 玩蛇网Python新手群
修订日期:2017年05月23日 - 11时31分41秒 发布自玩蛇网

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules