今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用。

基础背景介绍:

首先得有个人微信号(没有自行注册),为方便测试学习;

其次,还要注册微信公众号,微信公众号不止一种,是分多种的,具体详情见官方说明,但仅测试学习时可先不注册公众号,(需要用个人微信号扫描登陆测试公众平台)利用微信提供的测试平台接口即可:

微信公众号说明:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html

微信公众号注册站点:https://mp.weixin.qq.com/

免费测试公众平台:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

微信开发者文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

下面就进入正题:

说明:最好使用公网ip主机和备案的域名进行测试,本文测试使用的阿里云主机有公网ip,域名备案遇到坑了,买了域名无法在北京阿里云上备案,所以没有使用域名;

接入微信公众平台

其实,微信api接口使用,这里主要是参考官网的说明部署的,步骤有点像曾经写过的一篇用zabbix实现微信报警的配置;想玩好了,除了要对使用的哪种语言本身熟悉,还要就是熟读微信的api接口文档了。

第一步:填写服务器配置nxinx

扫描登陆免费的微信测试平台,填写接口配置信息:

注意:微信公众号接口只支持80端口;所以,在填写url时,我是在阿里云上用nginx做的一个web服务;

阿里云主机上的nginx主要部分配置如下:

第二步:验证消息的确来自微信服务器(即验证服务器地址的有效性):

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址url上,GET请求携带4个参数:

1. signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数;

2.timestamp:时间戳;

3.nonce:随机数;

4.echostr:随即字符串;

开发者通过检验signature对请求进行校验,若确认此处get请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败;

阿里云主机上编写python代码,(以tonado框架为例)实现验证:

运行代码:

python wechat.py

然后,回到微信开发平台,在填写完接口配置信息后,点击提交;一切正常,提交后会显示配置成功;

下面,就可以根据个人用户关注开发的公众号所要实现哪些需求和微信的api文档开发相关功能了;

示例一:简单文本信息

个人用户关注公众号后,用户输入字符串,公众号回显什么字符串;

具体还要参考微信api文档:消息管理部分

python代码:

运行代码:python wechat.py

然后,在微信公众平台上,找到测试号二维码,扫描关注后,首次关注时,手机微信客户端就会收到自动推送的信息,即显示i like python;

然后,客户端发送字符串测试回显功能;

手机关注公众号后,打开对话框,随意输入字符,回显相同内容,则表示测试成功(仅实现文本的回显,因为微信对于不同类型的信息,有不同的配置要求,如要接收或发送图片、音频、视频等);

示例二:微信自带的图片消息收发

实现能发送或接收图片信息,则修改部分代码,其它部分不变:

运行后,再回到手机微信客户端,发送笑脸图片等,测试回显相同的图片即成功;

示例三:扫描公众号内部生成的带参数的二维码

说明:

此代码需要在本地虚拟机上和阿里云主机上同时运行,进行相关测试;

本地运行后,在本地浏览器访问,(目的是为了生成二维码):

http://192.168.1.250:8000/qrcode?sid=8000

然后,会生成二维码,这时再用微信扫描改二维码;

手机微信扫描上面的二维码后,会显示:您扫描是的8000

这就简单实现了扫描带参数的二维码后,可自定义深入的开发;如根据,把参数定义成不同的内容,根据二维码参数,来识别出不同的内容,等等;

更多深入功能还不会,用时再借鉴吧。

python训练营微信公众号真实性_用python进行微信公众号开发(仅测试学习)相关推荐

  1. 视频教程-企业微信支付JAVA版_向员工收款-微信开发

    企业微信支付JAVA版_向员工收款 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信息 ...

  2. Python训练营2021:构建8个真实世界的Python项目

    时长:19h 27m |视频:. MP4,1280×720 30 fps |音频:AAC,44.1 kHz,2ch |大小:9.54 GB 语言:英语+中英文字幕 机译 从Python Web开发的初 ...

  3. python微信点赞收费吗_点赞关于怎样微信刷投票数,我来教你微信投票怎样花钱买票...

    揭阳都来说说快速投票什么价格?细说微信投票目前什么价格?投票的意图在于评选成果.咱们常常会在一些节目中听到主持人说"请投出您名贵的一票,为您喜爱支撑的选手加油打气",可是作为在竞赛 ...

  4. python怎么使用别人的代码_利用Python查看微信共同好友功能的实现代码

    总有思路清奇的朋友存在,想实现查看微信共同好友: 由于之前分享的代码有获取过微信好友头像,所以当时第一反应是通过itchat微信接口获取好友信息,比对两个人的好友信息列表就可以实现了.按理说这么简单的 ...

  5. python 用itchat会封吗_在python中使用itchat发送微信消息

    介绍 itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人 安装 pip install itchat 示 ...

  6. python操作微信手机端下载_【python】自动化连接和操作手机微信

    1. 环境配置 JDK Android SDK Appium MuMu 1.1. JDK 1.1.1. 下载安装 去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.e ...

  7. python头像右上角加红色数字_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  8. python语言的单行注释以井号开头_初识Python

    Python Python开发 Python语言 初识Python 初识Python 计算机基础 计算机的组成: 输入输出设备.存储器.主板.CPU.硬盘.内存.显示器.电源.显卡. CPU:中央处理 ...

  9. python操作微信手机端下载_用PYTHON玩微信(非常详细)

    词云那里可以换成小黄人图片 -------------------------------------------------------------------------------------- ...

最新文章

  1. 《Adobe Fireworks CS6中文版经典教程》——1.2工具面板
  2. iOS组件化(二):创建远程私有库
  3. python加载函数包_Python wrapt包_程序模块 - PyPI - Python中文网
  4. HTML之二:body标记的属性及属性值
  5. mysql索引的使用及优化方法_MySQL中索引和优化的用法总结
  6. Redis主从读写分离配置
  7. MYSQL常用查询函数
  8. scala求集合相邻元素差值的最小值
  9. 我亦云云——也谈云计算(3)
  10. Intouch2020安装与授权
  11. 提升机器学习数学基础,这7本书一定要读-附pdf资源
  12. 遗传算法原理与matlab,有关路径优化遗传算法原理(结合matlab代码)
  13. SVN二次开发收集01
  14. 电路实习报告:简易收音机的焊接
  15. 洛阳理工学院计算机类分数线,2017洛阳理工学院录取分数线
  16. 51个SIG组,持续12小时在线讨论…openEuler 开源社区这群人为何如此「活力无限」...
  17. 设计模式初探(五)——二三模式一锅煮
  18. 通讯测试工具和博图仿真机的连接教程
  19. 战网错误:我们在传输数据时遇到一个问题。保险起见,请先检查你的互联网连接之后再试一次!
  20. 24点(给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利)

热门文章

  1. 上海计算机职业学校排名2015年,2015年上海各区学校教育资源实力排行榜
  2. Undefined function or method ' ' for input arguments of type 'double' ---错误解决办法
  3. git commit时出现unable to auto-detect email address错误
  4. 多项式(polynomial)和 单项式(monomial)
  5. System类、包装类、Math类、Random、Arrays工具类
  6. python里面两个大于号_【课堂笔记】Python常用的数值类型有哪些?
  7. 光盘在电脑上为什么放不出来_铁砂掌这么厉害,为什么上擂台用不出来
  8. 机器学习中为什么需要梯度下降_机器学习,梯度下降算法,问题引入
  9. xml python gb2312_使用Python处理XML格式数据的方法介绍
  10. c读取ini配置文件_Go-INI - 超赞的Go语言INI文件操作库