콩짜개 검색 - 위 챗 공공 플랫폼 접속 (wechatpy)

위의 글 은 위 챗 공공 플랫폼 을 어떻게 연결 하 는 지 소 개 했 지만 그 안의 검증 코드 는 우리 가 스스로 실현 한 것 이다.그러나 지금 우 리 는 더 좋 은 선택 이 생 겼 다.위 챗 (WeChat) 퍼 블 릭 플랫폼 제3자 파 이 썬 SDK 는 일반 퍼 블 릭 플랫폼 과 기업 번호 퍼 블 릭 플랫폼 의 분석 메시지, 생 성 회신 과 능 동적 호출 등 API 를 구현 했다.자세 한 상황 은 보십시오http://wechatpy.readthedocs.org/en/latest/소개
wechatpy 에 검사 모듈 이 봉인 되 어 있 습 니 다. check 를 직접 호출 합 니 다.signature 는 검사 작업 을 완료 할 수 있 습 니 다. 수 정 된 코드 는 다음 과 같 습 니 다.
#!/bin/env python
# -*- coding: utf-8 -*- 
import hashlib, urllib, urllib2, re, time, json
import xml.etree.ElementTree as ET
from flask import Flask, request, render_template
from config import APP_SECRET_KEY
from lib.wechatpy import parse_message, create_reply
from lib.wechatpy.utils import check_signature
from lib.wechatpy.exceptions import InvalidSignatureException

app = Flask(__name__)
app.debug = True
app.secret_key = APP_SECRET_KEY

TOKEN = 'douban_book'	#                 

@app.route('/')
def home():
    return render_template('index.html')

#              
#              ,                  
@app.route('/weixin', methods=['GET', 'POST'])
def weixin():
    signature = request.args.get('signature', '')
    timestamp = request.args.get('timestamp', '')
    nonce = request.args.get('nonce', '')
    echo_str = request.args.get('echostr', '')
    try:
        check_signature(TOKEN, signature, timestamp, nonce)
    except InvalidSignatureException:
        abort(403)
    if request.method == 'GET':
        return echo_str
    else:
        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()


if __name__ == '__main__':
    app.run()

소스 코드

좋은 웹페이지 즐겨찾기