专栏首页linux、Python学习用 Python 进行微信公众号开发
原创

用 Python 进行微信公众号开发

今天看到篇教程,是用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。

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

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

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

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

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux 服务器性能出问题,排查下这些参数指标

    一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息。通常来说运维人员、系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十...

    马哥linux运维
  • 你不知道Linux的10个最危险的命令

    Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。

    马哥linux运维
  • 运维神技能 | 一分钟搞定监控系统

    1.概述: MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。 开发这个分支的原因是:甲骨文公司收购了MySQL后,...

    马哥linux运维
  • 解决6.5.16及以上版本微信内部M页不能唤起APP

    最近微信唤起app的数据急速下降,产品同学告诉我们大事来了,微信不能唤起Android的App了!!

    静默加载
  • 微信小程序一天连发2大招:小游戏和腾讯浏览器垂直搜索开放

    微信上线了“小游戏”,用户无需下载即可在微信中玩跳一跳、中国象棋、坦克大作战等15款H5游戏。这些小游戏是通过微信小程序实现的,用户只要下载微信6.6.1版都可...

    企鹅号小编
  • 微信2017数据报告

    11月9日,微信团队在成都腾讯全球合作伙伴大会上为全球伙伴解读了最新的《2017微信数据报告》。 微信每天有多少条消息被发送?目前有多少个行业已经在使用小程序了...

    腾讯大讲堂
  • 微信聊天记录删除了还能恢复吗?这个恢复方法目前最实用

    微信聊天记录删除了还能恢复吗?关于这样的话题真的太多太多,可能大家没有意识微信聊天记录删除恢复的重要性。微信已经成为大家日常社交主要工具,往往会产生很多重要信息...

    科技脑洞在线
  • 微信读书冷启动用户书籍推荐初探:一个借助微信用户画像的方法

    刘笑江
  • 认清微信小程序(应用号)的本质

    最近几天技术圈被腾讯要推出来微信小程序给引爆了。网络上各种微信小程序的消息,海啸般涌来。微信小程序相关域名域疯狂抢注,微信开发工具被疯狂安装下载,各种微信小程...

    程序源代码
  • 线下迁移线上,如何使用企业微信打造数字化企业?

    2019年12月23日微信发布了全新的企业微信3.0,提出对内让信息流转高效,对外连接11亿微信用户。如何在企业微信上创建一个连接客户的应用,将小程序接入企业微...

    腾小云

扫码关注云+社区

领取腾讯云代金券