当前位置: 首页 > news >正文

python发微信公众号消息_个人微信公众号搭建Python实现 -接收和发送消息-基本说明与实现(14.2.1)...

@

1.原理

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2NjI0MzI5,size_16,color_FFFFFF,t_70

2.接收普通消息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2NjI0MzI5,size_16,color_FFFFFF,t_70

其他消息类似参考官方文档

3.接收代码普通消息代码实现

from flask import Flask,request,abort

import xmltodict

import time

app = Flask(__name__)

#常量 微信的token令牌

WECHAT_TOKEN = "xxxx"

@app.route("/wx",methods=["GET","POST"])

def wechat():

#这里其实可以做一个验证的

xml_to_dct = xmltodict.parse(request.data)

print(xml_to_dct)

xml_dict = xml_to_dct.get("xml")

#提取信息

msg_type = xml_dict.get("MsgType")

resp_dict = {}

if msg_type == "text":

#表示发送的文本信息

#构造返回值,经由微信服务器回复给用户的内容

resp_dict = {

"xml":{

"ToUserName":xml_dict.get("FromUserName"),

"FromUserName":xml_dict.get("ToUserName"),

"CreateTime":int(time.time()),

"MsgType":"text",

"Content":xml_dict.get("Content")

}

}

resp = xmltodict.unparse(resp_dict)

return resp

if __name__ == '__main__':

app.run(host="127.0.0.1",port=80)

注意

1.在微信公众号控制台已经绑定了自己的服务器了

2.这里使用的flask框架处理请求

3.这里演示了处理普通文本消息,其他消息就以此类比

4.关注用户发送消息给公众号,此时微信官方服务器收到消息转发到自己部署的服务器上,转发过来的数据类型为xml,使用xmltodict包将xml转化为python自带数据类型-字典,然后进行相应的处理,返回数据时也要使用xml类型的数据(同样使用工具包打包好)

相关文章:

  • python爬虫代写价格_python爬取京东价格
  • lua get reused time_利用redis-lua+python实现接口限流
  • server2008网卡驱动包_网卡工作原理详解
  • svpwm的原理及法则推导和控制算法详解_电机控制要点解疑:SPWM,SVPWM和矢量控制...
  • python删除文件指定字符串,从Python中的字符串中删除特定字符
  • python基础读后感_《python基础教程 》第一章 读书笔记
  • 二叉树的字符图形显示程序_(CSPJ)入门级C++语言试题A卷答案解析阅读程序
  • 服务器显示地址正在使用_用Windows Storage Server 2008做iSCSI存储服务器
  • 权限设计表结构超详细_超详细!!五金模具组件及工程结构设计
  • flex 下对齐_开启 flex 与 grid 布局方式之旅
  • python中的and or的区别_Python 中 (,|)和(and,or)之间的区别
  • python csv模块dictwrite_Pythoncsv.DictWriterwriterow()返回
  • dataset__getitem___PyTorch 之Dataset和DataLoader
  • java 读取txt内容_不用怀疑!这就是把Java.I/O流讲解的最清楚的一篇文章
  • 表单所有input框置灰_别再对 Angular 表单的 ControlValueAccessor 感到迷惑
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Consul Config 使用Git做版本控制的实现
  • docker python 配置
  • leetcode98. Validate Binary Search Tree
  • linux学习笔记
  • ng6--错误信息小结(持续更新)
  • Python 反序列化安全问题(二)
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring框架之我见(三)——IOC、AOP
  • Unix命令
  • Web Storage相关
  • 警报:线上事故之CountDownLatch的威力
  • 通信类
  • 延迟脚本的方式
  • 移动端解决方案学习记录
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #pragma once
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (6)设计一个TimeMap
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (笔试题)合法字符串
  • (二)换源+apt-get基础配置+搜狗拼音
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (五)MySQL的备份及恢复
  • (转) ns2/nam与nam实现相关的文件
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)Google Chrome调试JS
  • .htaccess配置常用技巧
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net Remoting常用部署结构
  • .Net 高效开发之不可错过的实用工具
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET单元测试