python微信公众号之关注公众号自动回复


Posted in Python onOctober 25, 2018

我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。

python微信公众号之关注公众号自动回复

如图所示,我们无法直接使用此功能。

那么接着上一个博客,我们完成了关键词自动回复功能,博文地址

实现自动回复的机制就是:
一旦用户给公众号一个触发(有可能发了一段文字、或者图片等等,也可能是关注了公众号),后台就会收到一个对应的XML消息,我们需要做的就是解析它,并作出回应即可。

那么如果关注了一个公众号,公众号后台会收到这样的XML消息。

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>

参数如下:

python微信公众号之关注公众号自动回复

以上,那就easy了,我们只要解析这个XML,获得MsgType为event,那么就进行判断event是否为“subscribe”如果是,就进行回复消息即可。

关键代码如下:(具体代码看上一个博文)

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)
class EventMsg(Msg):
 def __init__(self, xmlData):
  Event.__init__(self, xmlData)
  self.Event = xmlData.find('Event').text#取Event这个参数里的内容
if recMsg.MsgType == 'event':
     #print('yes')
     event = recMsg.Event
     if event == 'subscribe':#判断如果是关注则进行回复
      content = "。。。"
      replyMsg = reply.TextMsg(toUser, fromUser, content)
      return replyMsg.send()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python删除列表中重复记录的方法
Apr 28 Python
编写Python的web框架中的Model的教程
Apr 29 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
Django 创建/删除用户的示例代码
Jul 24 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
python 文件查找及内容匹配方法
Oct 25 #Python
利用python循环创建多个文件的方法
Oct 25 #Python
用python生成1000个txt文件的方法
Oct 25 #Python
Python爬虫之正则表达式的使用教程详解
Oct 25 #Python
python实现键盘控制鼠标移动
Nov 27 #Python
解决python 无法加载downsample模型的问题
Oct 25 #Python
python实现写数字文件名的递增保存文件方法
Oct 25 #Python
You might like
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
简述vue中的config配置
2018/01/23 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
浅谈django orm 优化
2018/08/18 Python
python conda操作方法
2019/09/11 Python
python selenium操作cookie的实现
2020/03/18 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
将相和教学反思
2014/02/04 职场文书
讲座通知范文
2015/04/23 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
服务器nginx权限被拒绝解决案例
2022/09/23 Servers