本文整理汇总了Python中wechatpy.parse_message函数的典型用法代码示例。如果您正苦于以下问题:Python parse_message函数的具体用法?Python parse_message怎么用?Python parse_message使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parse_message函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_parse_subscribe_scan_product_event
def test_parse_subscribe_scan_product_event(self):
from wechatpy.events import SubscribeScanProductEvent
xml = """<xml>
<ToUserName><![CDATA[gh_fbe8a958756e]]></ToUserName>
<FromUserName><![CDATA[otAzGjrS4AYCmeJM1GhEOcHXXTAo]]></FromUserName>
<CreateTime>1433259128</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[scanbarcode|keystandard|keystr]]></EventKey>
</xml>"""
msg = parse_message(xml)
self.assertTrue(isinstance(msg, SubscribeScanProductEvent))
self.assertEqual('scanbarcode', msg.scene)
self.assertEqual('keystandard', msg.standard)
self.assertEqual('keystr', msg.key)
xml = """<xml>
<ToUserName><![CDATA[gh_fbe8a958756e]]></ToUserName>
<FromUserName><![CDATA[otAzGjrS4AYCmeJM1GhEOcHXXTAo]]></FromUserName>
<CreateTime>1433259128</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[scanimage|keystandard|keystr]]></EventKey>
</xml>"""
msg = parse_message(xml)
self.assertTrue(isinstance(msg, SubscribeScanProductEvent))
self.assertEqual('scanimage', msg.scene)
self.assertEqual('keystandard', msg.standard)
self.assertEqual('keystr', msg.key)
开发者ID:Brightcells,项目名称:wechatpy,代码行数:32,代码来源:test_parser.py
示例2: message_entries
def message_entries():
signature = request.args.get('signature', '')
timestamp = request.args.get('timestamp', '')
nonce = request.args.get('nonce', '')
encrypt_type = request.args.get('encrypt_type', 'raw')
msg_signature = request.args.get('msg_signature', '')
try:
check_signature(Config.TOKEN, signature, timestamp, nonce)
except InvalidSignatureException:
abort(403)
# 微信验证
if request.method == 'GET':
echo_str = request.args.get('echostr', '')
return echo_str
# POST request
if encrypt_type == 'raw':
# plaintext mode
msg = parse_message(request.data)
# 事件处理
if msg.type == 'event':
# 关注事件
if msg.event == 'subscribe':
mfc = MenuFunc(msg.source)
mfc.subscribecreatemenu()
reply = create_reply(msg.event, msg)
elif msg.type == 'text':
reply = create_reply(msg.content, msg)
elif msg.type == 'image':
reply = create_reply('对不起,暂时不支持图片消息', msg)
else:
reply = create_reply(msg.type, msg)
return reply.render()
else:
# encryption mode
from wechatpy.crypto import WeChatCrypto
crypto = WeChatCrypto(Config.TOKEN, Config.AES_KEY, Config.APPID)
try:
msg = crypto.decrypt_message(
request.data,
msg_signature,
timestamp,
nonce
)
except (InvalidSignatureException, InvalidAppIdException):
abort(403)
else:
msg = parse_message(msg)
if msg.type == 'text':
reply = create_reply(msg.content, msg)
else:
reply = create_reply('Sorry, can not handle this for now', msg)
return crypto.encrypt_message(reply.render(), nonce, timestamp)
开发者ID:ZhaoXianglin,项目名称:XiWechat,代码行数:54,代码来源:Message.py
示例3: test_location_select_event
def test_location_select_event(self):
from wechatpy.events import LocationSelectEvent
xml = """<xml>
<ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
<FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
<CreateTime>1408091189</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[location_select]]></Event>
<EventKey><![CDATA[6]]></EventKey>
<SendLocationInfo><Location_X><![CDATA[23]]></Location_X>
<Location_Y><![CDATA[113]]></Location_Y>
<Scale><![CDATA[15]]></Scale>
<Label><![CDATA[广州市海珠区客村艺苑路 106号]]></Label>
<Poiname><![CDATA[]]></Poiname>
</SendLocationInfo>
</xml>"""
event = parse_message(xml)
self.assertTrue(isinstance(event, LocationSelectEvent))
self.assertEqual(('23', '113'), event.location)
self.assertEqual('15', event.scale)
self.assertTrue(event.poiname is None)
self.assertEqual('广州市海珠区客村艺苑路 106号', event.label)
开发者ID:lihuimail,项目名称:wechatpy,代码行数:25,代码来源:test_events.py
示例4: test_pic_photo_or_album_event
def test_pic_photo_or_album_event(self):
from wechatpy.events import PicPhotoOrAlbumEvent
xml = """<xml>
<ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
<FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
<CreateTime>1408090816</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[pic_photo_or_album]]></Event>
<EventKey><![CDATA[6]]></EventKey>
<SendPicsInfo><Count>1</Count>
<PicList>
<item>
<PicMd5Sum><![CDATA[5a75aaca956d97be686719218f275c6b]]></PicMd5Sum>
</item>
</PicList>
</SendPicsInfo>
</xml>"""
event = parse_message(xml)
self.assertTrue(isinstance(event, PicPhotoOrAlbumEvent))
self.assertEqual(1, event.count)
self.assertEqual(
'5a75aaca956d97be686719218f275c6b',
event.pictures[0]['PicMd5Sum']
)
开发者ID:lihuimail,项目名称:wechatpy,代码行数:27,代码来源:test_events.py
示例5: text_handle
def text_handle(request):
msg = parse_message(request.body)
reply = TextReply(message=msg)
content = msg.content
new_uid = reply.target
if content == "来数据":
views.update_database_randomly(new_uid)
return HttpResponse(create_reply("注入了数据!", message=msg))
elif content == "xp好帅":
views.test2(new_uid)
return HttpResponse(create_reply("获得了浇水次数和施肥次数!!", message=msg))
if new_uid in sessions and sessions[new_uid] == 1:
if content == "退出":
sessions[reply.target] = 0
return HttpResponse(create_reply("生命之树期待与您再次相会", message=msg))
rebot_key = "da0d72f6aacebe4301f685e2c11f22c0"
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (rebot_key,urllib.parse.quote(content))
# return HttpResponse(create_reply(u"生命之树期待与您再次相会", message=msg))
response = urllib.request.urlopen(url).read() #调用urllib2向服务器发送get请求url
reply_text = json.loads(response.decode("utf-8"))['text']
reply_text.replace('图灵机器人','生命之树')
# reply_text.replace(u'图灵机器人'.encode('utf-8'),u'生命之树')
return HttpResponse(create_reply(reply_text, message=msg))
if(views.check_band_user(new_uid) == False):
views.insert_band_user(new_uid)
return HttpResponse(create_reply(u"太平洋手环保太平,欢迎您使用太平洋手环!", message=msg))
else:
return HttpResponse(create_reply(u"欢迎您重归太平洋手环!", message=msg))
开发者ID:Software-Eng-THU-2015,项目名称:pacific-rim,代码行数:32,代码来源:server.py
示例6: handle_msg
def handle_msg(request):
if request.method == 'GET':
signature = request.GET.get('signature')
timestamp = request.GET.get('timestamp')
nonce = request.GET.get('nonce')
echo_str = request.GET.get('echostr')
check_signature(TOKEN, signature, timestamp, nonce)
return HttpResponse(echo_str)
elif request.method == 'POST':
body = request.body
msg = parse_message(body)
rep = TextReply()
rep.source = msg.target
rep.target = msg.source
if msg.type == 'event':
if msg.event == 'click':
print(msg.key)
if msg.key == 'sports_advice':
rep.content = recommend_plan(msg.source)
elif msg.key == 'view_info':
rep.content = get_info(msg.source)
elif msg.key == 'add_test':
rep.content = add_test(msg.source)
elif msg.key == 'show_today':
rep.content = get_datatoday(msg.source)
elif msg.event == 'subscribe':
rep.content = create_newuser(msg.source)
else:
rep.content = '!!!'
else:
rep.content = '<a href="http://learn.tsinghua.edu.cn">你好</a>'
repxml = rep.render()
return HttpResponse(repxml)
开发者ID:sycmio,项目名称:sycmio.github.io,代码行数:33,代码来源:views.py
示例7: test_parse_submit_invoice_title_event
def test_parse_submit_invoice_title_event(self):
""" Test parsing xml for SubmitInvoiceTitleEvent """
from wechatpy.events import SubmitInvoiceTitleEvent
xml = """<xml>
<ToUserName><![CDATA[gh_fc0a06a20993]]></ToUserName>
<FromUserName><![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]></FromUserName>
<CreateTime>1475134700</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[submit_invoice_title]]></Event>
<title><![CDATA[样例公司抬头]]></title>
<tax_no><![CDATA[1486715661]]></tax_no>
<addr><![CDATA[abc]]></addr>
<phone><![CDATA[13313331333]]></phone>
<bank_type><![CDATA[bt]]></bank_type>
<bank_no><![CDATA[bn]]></bank_no>
<attach><![CDATA[at]]></attach>
<title_type><![CDATA[InvoiceUserTitleBusinessType]]></title_type>
</xml>"""
msg = parse_message(xml)
self.assertTrue(isinstance(msg, SubmitInvoiceTitleEvent))
self.assertEqual('样例公司抬头', msg.title)
self.assertEqual('1486715661', msg.tax_no)
self.assertEqual('abc', msg.addr)
self.assertEqual('13313331333', msg.phone)
self.assertEqual('bt', msg.bank_type)
self.assertEqual('bn', msg.bank_no)
self.assertEqual('at', msg.attach)
self.assertEqual('InvoiceUserTitleBusinessType', msg.title_type)
开发者ID:Brightcells,项目名称:wechatpy,代码行数:30,代码来源:test_parser.py
示例8: wechat_handler
def wechat_handler():
try:
token = current_app.config['WECHAT_TOEKN']
signature = request.args.get('signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
check_signature(token, signature, timestamp, nonce)
current_app.logger.info('wechat_handler begin')
body = request.get_data()
current_app.logger.info('wechat_handler body %s' % body)
msg = parse_message(body)
if msg.type == 'text':
return reply_msg(msg)
elif msg.type == 'event' and msg.event == 'click' and msg.key == 'V2003_SignIn':
return sign_in(msg)
elif msg.type == 'event' and msg.event in ['subscribe_scan', 'scan'] and msg.scene_id == '123':
binding(msg)
if msg.event == 'subscribe_scan':
return welcome_article(msg)
elif msg.type == 'event' and msg.event == 'unsubscribe':
unsubscribe_unbinding(msg)
elif msg.type == 'event' and msg.event == 'subscribe':
return welcome_article(msg)
reply = EmptyReply()
return reply.render()
except InvalidSignatureException:
abort(404)
except Exception as e:
current_app.logger.exception('wechat_handler %s' % e)
reply = EmptyReply()
return reply.render()
开发者ID:xingkaixin,项目名称:pinpin,代码行数:32,代码来源:wechatapp.py
示例9: test_pic_sysphoto_event
def test_pic_sysphoto_event(self):
from wechatpy.events import PicSysPhotoEvent
xml = """<xml>
<ToUserName><![CDATA[gh_e136c6e50636]]></ToUserName>
<FromUserName><![CDATA[oMgHVjngRipVsoxg6TuX3vz6glDg]]></FromUserName>
<CreateTime>1408090651</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[pic_sysphoto]]></Event>
<EventKey><![CDATA[6]]></EventKey>
<SendPicsInfo><Count>1</Count>
<PicList>
<item>
<PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>
</item>
</PicList>
</SendPicsInfo>
</xml>"""
event = parse_message(xml)
self.assertTrue(isinstance(event, PicSysPhotoEvent))
self.assertEqual(1, event.count)
self.assertEqual(
'1b5f7c23b5bf75682a53e7b6d163e185',
event.pictures[0]['PicMd5Sum']
)
开发者ID:lihuimail,项目名称:wechatpy,代码行数:27,代码来源:test_events.py
示例10: handle
def handle(request):
if request.method == "GET":
if not tools.checkSignature(request):
return HttpResponse("invalid signature")
else:
return HttpResponse(request.GET["echostr"])
msg = parse_message(request.body)
return msg_splitter[msg.type](msg)
开发者ID:wmc54321,项目名称:wmc54321.github.io,代码行数:8,代码来源:server1.py
示例11: index
def index():
# print request.args
# print json.dumps(request.args)
if request.method == 'GET':
data = request.args
signature = data.get('signature')
timestamp = data.get('timestamp')
nonce = data.get('nonce')
echostr = data.get('echostr')
token = current_app.config.get('TOKEN')
try:
check_signature(token, signature, timestamp, nonce)
except InvalidSignatureException:
return 'invalid signature'
return echostr
else:
xml = request.data
print xml
msg = parse_message(xml)
if msg.type == 'text':
print msg.content
reply = TextReply(message=msg)
reply.content = u'reply 测试'
xml_reply = reply.render()
return xml_reply
elif msg.type == 'image':
reply = ImageReply(message=msg)
reply.media_id = msg.media_id
xml_reply = reply.render()
return xml_reply
elif msg.type == 'voice':
# reply = VoiceReply(message=msg)
# reply.media_id = msg.media_id
reply = TextReply(message=msg)
reply.content = msg.recognition
xml_reply = reply.render()
return xml_reply
elif msg.type == 'video':
reply = VideoReply(message=msg)
reply.media_id = msg.media_id
reply.title = u'你的video'
reply.description = u'wo 爱倪呀'
xml_reply = reply.render()
return xml_reply
pass
elif msg.type == 'location':
pass
elif msg.type == 'link':
pass
elif msg.type == 'shortvideo':
reply = VideoReply(message=msg)
reply.media_id = msg.thumb_media_id
reply.title = u'你的video'
reply.description = u'wo 爱倪呀'
xml_reply = reply.render()
return xml_reply
else:
return ''
开发者ID:waro163,项目名称:flask-wechat-public-service,代码行数:58,代码来源:views.py
示例12: _wechat_required
def _wechat_required(method, *args, **kwargs):
from wechatpy.crypto import WeChatCrypto
from wechatpy import parse_message
signature = request.args.get('signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
if not current_app.config.get('WECHAT_TOKEN'):
return abort(500, "Token is None")
token = current_app.config['WECHAT_TOKEN']
try:
check_signature(token, signature, timestamp, nonce)
except InvalidSignatureException:
current_app.logger.warning('check signature failed.')
return abort(403)
if request.method == 'GET':
return request.args.get('echostr', '')
raw_msg = request.data
current_app.logger.debug(raw_msg)
if current_app.config.get('WECHAT_AES_KEY'):
crypto = WeChatCrypto(
current_app.config['WECHAT_TOKEN'],
current_app['WECHAT_AES_KEY'],
current_app.config['WECHAT_APPID']
)
try:
raw_msg = crypto.decrypt_message(
raw_msg,
signature,
timestamp,
nonce
)
except (InvalidAppIdException, InvalidSignatureException):
current_app.logger.warning('decode message failed.')
return abort(403)
request.wechat_msg = parse_message(raw_msg)
res = method(*args, **kwargs)
xml = ''
if isinstance(res, BaseReply):
xml = res.render()
if current_app.config.get('WECHAT_AES_KEY'):
crypto = WeChatCrypto(
current_app.config['WECHAT_TOKEN'],
current_app.config['WECHAT_AES_KEY'],
current_app.config['WECHAT_APPID']
)
xml = crypto.encrypt_message(xml, nonce, timestamp)
return xml
开发者ID:cloverstd,项目名称:flask-wechatpy,代码行数:58,代码来源:__init__.py
示例13: post
def post(self, request):
try:
req_text = request.body.decode('utf-8')
msg = parse_message(req_text)
except Exception as e:
logger.exception('Illegal message from weixin: \n%s', req_text)
return HttpResponse('Illegal message from weixin: \n%s' % req_text)
wechat_resp = handle_message(msg)
return HttpResponse(wechat_resp, content_type='text/xml; charset=utf-8')
开发者ID:Randyedu,项目名称:WeCron,代码行数:9,代码来源:views.py
示例14: wechat
def wechat():
signature = request.args.get('signature', '')
timestamp = request.args.get('timestamp', '')
nonce = request.args.get('nonce', '')
encrypt_type = request.args.get('encrypt_type', 'raw')
msg_signature = request.args.get('msg_signature', '')
try:
check_signature(TOKEN, signature, timestamp, nonce)
except InvalidSignatureException:
abort(403)
if request.method == 'GET':
echo_str = request.args.get('echostr', '')
return echo_str
# POST request
if encrypt_type == 'raw':
# plaintext mode
msg = parse_message(request.data)
if msg.type == 'text':
reply = create_reply(msg.content, msg)
else:
reply = create_reply('Sorry, can not handle this for now', msg)
return reply.render()
else:
# encryption mode
from wechatpy.crypto import WeChatCrypto
crypto = WeChatCrypto(TOKEN, AES_KEY, APPID)
try:
msg = crypto.decrypt_message(
request.data,
msg_signature,
timestamp,
nonce
)
except (InvalidSignatureException, InvalidAppIdException):
abort(403)
else:
msg = parse_message(msg)
if msg.type == 'text':
reply = create_reply(msg.content, msg)
else:
reply = create_reply('Sorry, can not handle this for now', msg)
return crypto.encrypt_message(reply.render(), nonce, timestamp)
开发者ID:shuaibo521,项目名称:HlanV3,代码行数:44,代码来源:runWechat.py
示例15: _enterprise_wechat_required
def _enterprise_wechat_required(method, *args, **kwargs):
from wechatpy.enterprise import parse_message
from wechatpy.enterprise.crypto import WeChatCrypto
from wechatpy.enterprise.exceptions import InvalidCorpIdException
signature = request.args.get('msg_signature')
timestamp = request.args.get('timestamp')
nonce = request.args.get('nonce')
if not current_app.config.get('WECHAT_TOKEN'):
return abort(500, "Token is None")
crypto = WeChatCrypto(
current_app.config['WECHAT_TOKEN'],
current_app['WECHAT_AES_KEY'],
current_app.config['WECHAT_APPID']
)
if request.method == 'GET':
echo_str = request.args.get('echostr')
try:
echo_str = crypto.check_signature(
signature,
timestamp,
nonce,
echo_str
)
except InvalidSignatureException:
abort(403)
return echo_str
try:
msg = crypto.decrypt_message(
request.data,
signature,
timestamp,
nonce,
)
except (InvalidSignatureException, InvalidCorpIdException):
return abort(403)
else:
request.wechat_msg = parse_message(msg)
res = method(*args, **kwargs)
xml = ''
if isinstance(res, BaseReply):
xml = res.render()
crypto = WeChatCrypto(
current_app.config['WECHAT_TOKEN'],
current_app.config['WECHAT_AES_KEY'],
current_app.config['WECHAT_APPID']
)
xml = crypto.encrypt_message(xml, nonce, timestamp)
return xml
开发者ID:cloverstd,项目名称:flask-wechatpy,代码行数:55,代码来源:__init__.py
示例16: test_parse_text_message
def test_parse_text_message(self):
xml = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>"""
msg = parse_message(xml)
self.assertEqual('text', msg.type)
开发者ID:Brightcells,项目名称:wechatpy,代码行数:12,代码来源:test_parser.py
示例17: test_parse_image_message
def test_parse_image_message(self):
xml = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<PicUrl><![CDATA[this is a url]]></PicUrl>
<MediaId><![CDATA[media_id]]></MediaId>
<MsgId>1234567890123456</MsgId>
</xml>"""
msg = parse_message(xml)
self.assertEqual('image', msg.type)
开发者ID:Brightcells,项目名称:wechatpy,代码行数:13,代码来源:test_parser.py
示例18: test_parse_video_message
def test_parse_video_message(self):
xml = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
<MsgId>1234567890123456</MsgId>
</xml>"""
msg = parse_message(xml)
self.assertEqual('video', msg.type)
开发者ID:Brightcells,项目名称:wechatpy,代码行数:13,代码来源:test_parser.py
示例19: test_parse_subscribe_event
def test_parse_subscribe_event(self):
xml = """<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>"""
msg = parse_message(xml)
self.assertEqual('event', msg.type)
self.assertEqual('subscribe', msg.event)
开发者ID:JSFansw,项目名称:wechatpy,代码行数:13,代码来源:test_parser.py
示例20: handle_msg
def handle_msg(request):
if request.method == 'GET':
signature = request.GET.get('signature')
timestamp = request.GET.get('timestamp')
nonce = request.GET.get('nonce')
echo_str = request.GET.get('echostr')
check_signature(TOKEN, signature, timestamp, nonce)
return HttpResponse(echo_str)
elif request.method == 'POST':
body = request.body
msg = parse_message(body)
rep = TextReply()
rep.source = msg.target
rep.target = msg.source
if msg.type == 'event':
if msg.event == 'click':
if msg.key == 'sports_advice':
rep.content = recommend_plan(msg.source)
elif msg.key == 'view_info':
rep.content = get_info(msg.source)
elif msg.key == 'add_bong':
rep.content = add_bong(msg.source)
elif msg.key == 'add_test':
rep.content = add_test(msg.source)
elif msg.key == 'add_test_new':
rep.content = add_test_new(msg.source)
elif msg.key == 'show_today':
rep.content = get_datatoday(msg.source)
elif msg.key == 'change_remind':
rep.content = set_remind(msg.source)
elif msg.key == 'build_match':
article_rep = ArticlesReply()
article_rep.source = msg.target
article_rep.target = msg.source
article_rep.add_article({
'title': '创建比赛',
'description': '点此链接以创建比赛',
'image': serverIP+'static/img/run02.jpg',
'url': build_match(msg.source)
})
repxml = article_rep.render()
return HttpResponse(repxml)
elif msg.event == 'subscribe':
rep.content = create_newuser(msg.source)
else:
rep.content = '!!!'
else:
rep.content = '你好'
repxml = rep.render()
return HttpResponse(repxml)
开发者ID:zjcAlistar,项目名称:myadmilk,代码行数:50,代码来源:views.py
注:本文中的wechatpy.parse_message函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论