代码拉取完成,页面将自动刷新
# wechat_service.py
from flask import Flask, request, make_response
from wechatpy import parse_message, create_reply
from wechatpy.utils import check_signature
from test import get_weather_text # 你原始代码中的函数
app = Flask(__name__)
# 与微信测试号后台填写的 Token 保持一致
TOKEN = "222984b57a9b0a93" # 随意设置,但必须与测试号一致
@app.route('/wechat', methods=['GET', 'POST'])
def wechat():
signature = request.args.get('signature', '')
timestamp = request.args.get('timestamp', '')
nonce = request.args.get('nonce', '')
echostr = request.args.get('echostr', '')
if request.method == 'GET':
# 验证服务器地址的有效性(第一次配置时微信会发GET请求)
try:
check_signature(TOKEN, signature, timestamp, nonce)
return make_response(echostr)
except Exception as e:
return "验证失败", 403
# POST 处理用户发来的消息(明文模式)
msg = parse_message(request.data)
if msg.type == 'text':
city = msg.content.strip()
reply_text = get_weather_text(city) # 调用你写的天气函数
reply = create_reply(reply_text, msg)
else:
reply = create_reply('请直接发送城市名,例如“上海”', msg)
return make_response(reply.render())
if __name__ == '__main__':
# 监听所有接口,端口 80(需 root 权限)或 8080(但微信只支持 80/443)
app.run(host='0.0.0.0', port=80)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。