代码实现

我们现在来实现一个针对文本消息的收发程序。实现的业务逻辑类似与“鹦鹉学舌”,粉丝发什么内容,我们就传回给粉丝什么内容。

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 等,仍属于文本信息。

qq_face_1.jpg qq_face_2.jpg qq_face_3.jpg qq_face_4.jpg

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字符,也属于文本消息。

自定表情

微信的自定义表情不是文本,也不是图片,而是一种不支持的格式,微信未提供处理此消息的接口。