diff --git a/README.md b/README.md
index 87e09e8..91899bb 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,72 @@
## 接收消息类型
* TextMessage
+{
+ 'ToUserName': '',
+ 'FromUserName': '',
+ 'CreateTime': '',
+ 'MsgType': 'text',
+ 'Content': 'hret',
+ 'MsgId': '25376371128450301'
+}
* ImageMessage
+{
+ 'ToUserName': '',
+ 'FromUserName': '',
+ 'CreateTime': '',
+ 'MsgType': 'image',
+ 'PicUrl': '可直接使用的图像url',
+ 'MsgId': '25376358150108245',
+ 'MediaId': 'utihMtnTma-qbcPMfc7zQlAAhT'
+}
+
* VoiceMessage
+数据内容:
+{
+ 'ToUserName': '微信服务号id',
+ 'FromUserName': '用户的openid',
+ 'CreateTime': '消息时间',
+ 'MsgType': 'voice',
+ 'MediaId': '媒体id,用此可以转可下载的url',
+ 'Format': 'amr',
+ 'MsgId': '7612907756399362048',
+ 'Recognition': None, # 识别结果
+ 'MediaId16K': '16K音质的mediaid'
+}
* VideoMessage
+{
+ 'ToUserName': '',
+ 'FromUserName': '',
+ 'CreateTime': '',
+ 'MsgType': 'video',
+ 'MediaId': '',
+ 'ThumbMediaId': '',
+ 'MsgId': '817'}
* LocationMessage
+{
+ 'ToUserName': '',
+ 'FromUserName': '',
+ 'CreateTime': '',
+ 'MsgType': 'location',
+ 'Location_X': '',
+ 'Location_Y': '',
+ 'Scale': '15',
+ 'Label': '',
+ 'MsgId': ''
+}
* LinkMessage
* EventMessage
+1 自定义菜单
+{
+ 'ToUserName': '',
+ 'FromUserName': '',
+ 'CreateTime': '',
+ 'MsgType': 'event',
+ 'Event': 'VIEW',
+ 'EventKey': '点击菜单对应的URL',
+ 'MenuId': ''
+}
+2 关注
发送给消息处理程序的结构:
{
diff --git a/woa/init.py b/woa/init.py
index da8988a..52c09f6 100644
--- a/woa/init.py
+++ b/woa/init.py
@@ -156,12 +156,20 @@ class WOAHandler:
"""
config = getConfig()
if msg.MsgType in ['video', 'voice', 'image']:
- msg.media_url = self.media_manager.get_media_url(msg.media_id)
+ msg.media_url = await self.media_manager.get_media_url(msg.MediaId)
msg.subscribe_id = getID()
+ # 文本测试, 已通过
+ """
rzt_dic = DictObject(**{
'msgtype':'text',
'content': '收到'
})
+ """
+ fs = FileStorage()
+ rzt_dic = DictObject(**{
+ "msgtype": "video",
+ "media_file": fs.realPath('/UiEi7hKqAmU1-jqQEVhZe/5/171/99/17/vidu-1.mp4')
+ })
return rzt_dic
await zmq_publish(config.woa_handler_id, json.dumps(msg, ensure_ascii=False))
result = await zmq_subcribe(msg.subscribe_id)
diff --git a/woa/reply.py b/woa/reply.py
index 1acab3c..16b2e3d 100644
--- a/woa/reply.py
+++ b/woa/reply.py
@@ -28,7 +28,7 @@ class ReplyBuilder:
"""
@staticmethod
- def text(msg: Dict[str, Any], content: str) -> str:
+ def text(msg: Dict[str, Any], content: str, create_time=None) -> str:
"""
构造文本回复
:param msg: 原始接收消息字典
@@ -36,14 +36,14 @@ class ReplyBuilder:
"""
to_user = msg.get('FromUserName')
from_user = msg.get('ToUserName')
- create_time = int(time.time())
+ create_time = create_time or int(time.time())
xml = ReplyBuilder._get_base_xml(to_user, from_user, create_time, 'text')
xml += f"\n"
return xml
@staticmethod
- def image(msg: Dict[str, Any], media_id: str) -> str:
+ def image(msg: Dict[str, Any], media_id: str, create_time=None) -> str:
"""
构造图片回复
:param msg: 原始接收消息字典
@@ -51,7 +51,7 @@ class ReplyBuilder:
"""
to_user = msg.get('FromUserName')
from_user = msg.get('ToUserName')
- create_time = int(time.time())
+ create_time = create_time or int(time.time())
xml = ReplyBuilder._get_base_xml(to_user, from_user, create_time, 'image')
xml += f"""
@@ -61,7 +61,7 @@ class ReplyBuilder:
return xml
@staticmethod
- def voice(msg: Dict[str, Any], media_id: str) -> str:
+ def voice(msg: Dict[str, Any], media_id: str, create_time=None) -> str:
"""
构造语音回复
:param msg: 原始接收消息字典
@@ -69,7 +69,7 @@ class ReplyBuilder:
"""
to_user = msg.get('FromUserName')
from_user = msg.get('ToUserName')
- create_time = int(time.time())
+ create_time = create_time or int(time.time())
xml = ReplyBuilder._get_base_xml(to_user, from_user, create_time, 'voice')
xml += f"""
@@ -79,7 +79,7 @@ class ReplyBuilder:
return xml
@staticmethod
- def video(msg: Dict[str, Any], media_id: str, title: str = "", description: str = "") -> str:
+ def video(msg: Dict[str, Any], media_id: str, title: str = "", description: str = "", create_time=None) -> str:
"""
构造视频回复
:param msg: 原始接收消息字典
@@ -89,7 +89,7 @@ class ReplyBuilder:
"""
to_user = msg.get('FromUserName')
from_user = msg.get('ToUserName')
- create_time = int(time.time())
+ create_time = create_time or int(time.time())
xml = ReplyBuilder._get_base_xml(to_user, from_user, create_time, 'video')
xml += f"""