作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python微信公众号之关注公众号自动回复由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以.
如图所示,我们无法直接使用此功能.
那么接着上一个博客,我们完成了关键词自动回复功能,博文地址 。
实现自动回复的机制就是: 一旦用户给公众号一个触发(有可能发了一段文字、或者图片等等,也可能是关注了公众号),后台就会收到一个对应的XML消息,我们需要做的就是解析它,并作出回应即可.
那么如果关注了一个公众号,公众号后台会收到这样的XML消息.
1
2
3
4
5
6
7
|
<
xml
>
<
ToUserName
>
<![CDATA[toUser]]>
</
ToUserName
>
<
FromUserName
>
<![CDATA[FromUser]]>
</
FromUserName
>
<
CreateTime
>123456789</
CreateTime
>
<
MsgType
>
<![CDATA[event]]>
</
MsgType
>
<
Event
>
<![CDATA[subscribe]]>
</
Event
>
</
xml
>
|
参数如下:
以上,那就easy了,我们只要解析这个XML,获得MsgType为event,那么就进行判断event是否为“subscribe”如果是,就进行回复消息即可.
关键代码如下:(具体代码看上一个博文) 。
1
2
3
4
5
6
7
8
9
|
def
parse_xml(web_data):
if
len
(web_data)
=
=
0
:
return
None
xmlData
=
ET.fromstring(web_data)
msg_type
=
xmlData.find(
'MsgType'
).text
...
#省略了一部分
elif
msg_type
=
=
'event'
:
#判断为事件消息
#print('event')
return
EventMsg(xmlData)
|
1
2
3
4
|
class
EventMsg(Msg):
def
__init__(
self
, xmlData):
Event.__init__(
self
, xmlData)
self
.Event
=
xmlData.find(
'Event'
).text
#取Event这个参数里的内容
|
1
2
3
4
5
6
7
|
if
recMsg.MsgType
=
=
'event'
:
#print('yes')
event
=
recMsg.Event
if
event
=
=
'subscribe'
:
#判断如果是关注则进行回复
content
=
"。。。"
replyMsg
=
reply.TextMsg(toUser, fromUser, content)
return
replyMsg.send()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/karry_zzj/article/details/78490896 。
最后此篇关于python微信公众号之关注公众号自动回复的文章就讲到这里了,如果你想了解更多关于python微信公众号之关注公众号自动回复的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!