flask微信公众号后端自动回复及部署(1)

此前实现了一个微信公众号的自动回复,此篇博客用来记录整个实现流程。

微信公众号后端部署需要一个公网开放的域名
这里我们使用ngrok, 一款内网穿透工具(可将内网映射为公网域名)。下载地址https://ngrok.com/download
启动ngrok 输入ngrok.exe http 80在这里插入图片描述
在这里插入图片描述
此时说明域名映射已成功,这段域名就是我们的公网域名 而且是在880端口上

接下来创建一个flask项目 用来验证
app.py

from flask import Flask
from wechatpy.utils import check_signature

app = Flask(__name__)

@app.route('/check_token', methods=['GET'])
def Check_token():
    """
    用来验证微信公众号后台链接
    :return:
    """
    rq_dict = request.args
    if len(rq_dict) == 0:
        return ""
    signature = request.args.get('signature')   # 提取请求参数
    timestamp = request.args.get('timestamp')
    nonce = request.args.get('nonce')
    echostr = request.args.get('echostr')
    try:
        check_signature(token='testtoken', signature=signature, timestamp=timestamp, nonce=nonce)  # 使用wechat库验证
    except InvalidSignatureException as e:
        return ''
    else:
        return echostr  # 返回数据

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

启动flask项目

接下来进入微信公众号平台 进入开发配置 提交成功即可开启开发者模式。

在这里插入图片描述

在Python中,Flask是一个轻量级的Web应用框架,而微信公众号的回话管理通常涉及到OAuth授权流程。使用Flask微信公众号开放平台API,你可以创建一个简单的应用来处理用户登录和会话管理。 1. **授权回调**:首先,你需要配置微信公众号服务器地址作为你的网站回调URL,当用户授权后,微信会发送一个包含code的授权链接到这个地址,你需要在Flask中处理这个请求并获取access_token用于换取用户的openid。 ```python from flask import request, redirect @app.route('/auth_callback') def auth_callback(): code = request.args.get('code') # 使用微信提供的工具类(如requests库)向微信API发起请求获取access_token access_token = get_access_token(code) # 通过access_token进一步获取openid等信息 ``` 2. **会话保存**:微信公众号支持session存储,可以在`wechat_session`表中持久化用户的openid,以便后续请求中识别用户身份。 ```python import redis redis_client = redis.Redis(host='localhost', port=6379) @app.route('/') def index(): session_key = 'wechat_user_' + request.headers.get('Authorization') openid = redis_client.get(session_key) or None # 根据openid展示个性化的页面内容 return render_template(..., user_openid=openid) ``` 3. **会话更新和检查**:每次用户访问需要权限的页面时,检查当前用户的openid是否存在于session中,如果不存在则跳转到登录页进行授权。 ```python @app.before_request def before_request(): if not is_user_logged_in(): return redirect(url_for('auth_required')) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值