代码实现
我们现在来实现一个针对文本消息的收发程序。实现的业务逻辑类似与“鹦鹉学舌”,粉丝发什么内容,我们就传回给粉丝什么内容。
from flask import Flask,request,make_response
import hashlib
import xmltodict
import time
app = Flask(__name__)
TOKEN = 'itcast'
@app.route('/wechat8000',methods=['GET','POST'])
def wechat():
if request.method=='GET':
data = request.args
signature = data.get('signature')
timestamp = data.get('timestamp')
nonce = data.get('nonce')
echostr = data.get('echostr')
temp = [timestamp,nonce,TOKEN]
temp.sort()
temp = ''.join(temp)
if (hashlib.sha1(temp).hexdigest()==signature):
return make_response(echostr)
if request.method=='POST':
xml = request.data
req = xmltodict.parse(xml)['xml']
if 'text' == req.get('MsgType'):
resp = {
'ToUserName':req.get('FromUserName'),
'FromUserName':req.get('ToUserName'),
'CreateTime':int(time.time()),
'MsgType':'text',
'Content':req.get('Content')
}
xml = xmltodict.unparse({'xml': resp})
print req.get('Content')
return xml
else:
resp = {
'ToUserName': req.get('FromUserName', ''),
'FromUserName': req.get('ToUserName', ''),
'CreateTime': int(time.time()),
'MsgType': 'text',
'Content': 'I LOVE ITCAST'
}
xml = xmltodict.unparse({'xml':resp})
return xml
if __name__ == '__main__':
app.run(port=8000,debug=True)
有趣的表情
QQ表情
实际是字符串转义,如 /::D
、/::P
等,仍属于文本信息。
emoji
绘文字(日语:絵文字/えもじ emoji)是日本在无线通信中所使用的视觉情感符号,绘意指图形,文字则是图形的隐喻,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。
在NTTDoCoMo的i-mode系统电话系统中,绘文字的尺寸是12x12 像素,在传送时,一个图形有2个字节。Unicode编码为E63E到E757,而在Shift-JIS编码则是从F89F到F9FC。基本的绘文字共有176个符号,在C-HTML4.0的编程语言中,则另增添了76个情感符号。
最早由栗田穰崇(Shigetaka Kurita)创作,并在日本网络及手机用户中流行。
自苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始席卷全球,目前emoji已被大多数现代计算机系统所兼容的Unicode编码采纳,普遍应用于各种手机短信和社交网络中。
本质是Unicode字符,也属于文本消息。
自定表情
微信的自定义表情不是文本,也不是图片,而是一种不支持的格式,微信未提供处理此消息的接口。