当我们创建了微信公众号后,想要根据用户的各种事件进行自动回复和用户自定义菜单来创建各种触发事件。那么我们需要怎么做呢?
上文我们介绍了微信如何校验公众号消息互通,今天我们来看微信公众号的各种事件。
1 关注/取消关注事件
2 扫描带参数二维码事件
3 上报地理位置事件
4 自定义菜单事件
5 点击菜单拉取消息时的事件推送
6 点击菜单跳转链接时的事件推送
具体的消息格式在微信公众号上都有:微信事件列表
我们通过上一张定义的微信事件毁掉接口都能对于这些事件进行处理。
其中要注意回复消息体格式:微信自动回复消息体格式
这里我们给出两个python回复消息体的类
文本
import time
class TextMsg:
def __init__(self, to_user, from_user, recv_msg):
self._toUser = to_user
self._fromUser = from_user
self._recvMsg = recv_msg
self._nowTime = int(time.time())
def structReply(self):
text = """
<xml>
<ToUserName><![CDATA[{}]]></ToUserName>
<FromUserName><![CDATA[{}]]></FromUserName>
<CreateTime>{}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{}]]></Content>
</xml>
""".format(self._fromUser, self._toUser, self._nowTime, self._recvMsg)
# 前面两个参数的顺序需要特别注意
return text
图片
import time
class ImgMsg:
def __init__(self, to_user, from_user, recv_msg):
self._toUser = to_user
self._fromUser = from_user
self._recvMsg = recv_msg
self._nowTime = int(time.time())
def structReply(self):
text = """
<xml>
<ToUserName><![CDATA[{}]]></ToUserName>
<FromUserName><![CDATA[{}]]></FromUserName>
<CreateTime>{}</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[{}]]></MediaId>
</Image>
</xml>
""".format(self._fromUser, self._toUser, self._nowTime, self._recvMsg)
# 前面两个参数的顺序需要特别注意
return text
这样我们就可以在微信公众号的事件中进行回复。
对于回复img类型的消息时,要先进行图片上传:
curl -F media=@C:\Users\Desktop\test.png "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=76_P1Ex-tR45Hmmf7woc6sJFESuIdIoL-V42tc-ZeE_qnteIKHqopQXqENc25dnU98ADpiPEfvztWHz4Y6BGTeB2sla2FK3KNoRWBF0I6_UzTpLqw8-G5fBsFjhJwgJECdABAZUS&type=image
其中的accessToken的获取方法不用我在详细说了吧,咩明白的话去看文档:AccessToken
如果你有什么疑问,关注我们的公众号吧,有客服小姐姐专门为你解答哦,里面还有各种新奇的功能供你选择哦,快来试试吧