0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python开发微信公众号教程来了

马哥Linux运维 来源:未知 作者:李倩 2018-05-10 17:13 次阅读

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

    关注

    56

    文章

    4792

    浏览量

    84624
  • 微信
    +关注

    关注

    6

    文章

    511

    浏览量

    26547

原文标题:用 Python 进行微信公众号开发

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OCR公众实现一识别

    公众账号试水商业化的消息近日引爆自媒体圈。厦门云脉公司把多年对OCR各种产品的研究成果集成于云脉OCR
    发表于 09-09 18:11

    Uber公众被封 大喊冤枉

    昨天腾讯对Uber公众违规而进行了严厉的处罚。12月8日消息,针对Uber中国
    发表于 12-08 17:12

    【Nanopi2试用体验】Nanopi2+Python 打造公众开发——问题解决一申请测试

    `【Nanopi2试用体验】Nanopi2+Python 打造公众开发https://bb
    发表于 01-16 13:59

    绑定自己的公众要重新烧APPkey和UID

    [color=#***]前两天在开发快的官网买了板子,打算连自己的公众,结果弄死也配置不成功,捣鼓半天,问客服才知道,如果要连自己的
    发表于 04-21 10:55

    敬请关注成都英创公众

      为了让客户更方便快捷地获取英创公司的研发动态和产品信息,英创公司对公众进行了一次修改和内容扩充。此外,今后英创的最新产品和技术信息将通过官网和
    发表于 09-29 10:46

    新能力 | 简单3步,让你的公众能听会说

    的接入,只需要公众运营者或开发者扫码即可完成。只需三步,即可让公众具有智能语音对话功能:第一步:注册科大讯飞AIUI
    发表于 07-16 09:52

    支付V3公众支付PHP教程SSDK的使用

    支付V3公众支付PHP教程(thinkPHP5公众
    发表于 05-18 15:12

    如何开发小说平台源码公众小说分销系统源码开发

    如何开发小说平台源码公众小说分销系统源码
    发表于 01-12 09:28 1138次阅读

    什么是小说分销系统开发公众小说平台源码搭建

    什么是小说分销系统开发公众小说平台源码搭建
    发表于 01-15 09:23 1032次阅读

    什么是小说分销系统开发公众小说平台源码搭建

    什么是小说分销系统开发公众小说平台源码搭建
    发表于 01-23 08:41 693次阅读

    崩了 公众文章已无法打开

    12月26日消息,不少网友博反映公众文章无法打开。
    的头像 发表于 12-26 17:31 3993次阅读

    小程序和公众与APP有什么区别

    公众和小程序都是基于平台来使用的,而自带的十几亿流量也是导流到小程序和
    的头像 发表于 01-04 11:59 4035次阅读

    YOOSEN 煜晨科技:如何深度运营公众

    应该如何运营,企业又该如何利用好这个营销利器?首先,我们要了解到,
    的头像 发表于 06-19 14:48 1752次阅读
    YOOSEN 煜晨科技:如何深度运营<b class='flag-5'>微</b><b class='flag-5'>信</b><b class='flag-5'>公众</b><b class='flag-5'>号</b>?

    公众硬件开发杂谈

    最近帮朋友研究一个单片机的项目,简单接触了一下公众的硬件平台,遇到很多问题,简单记录一下该怎么连接准备工作首先不管用什么接口,做硬件和软件的交互一般还是先想着怎么去做一个基础的连
    发表于 12-22 18:49 7次下载
    <b class='flag-5'>微</b><b class='flag-5'>信</b><b class='flag-5'>公众</b><b class='flag-5'>号</b>硬件<b class='flag-5'>开发</b>杂谈

    可A9G开发板上报GPS定位数据实现公众定位显示

    得到的经纬度等数据上报至服务器,然后在公众上可以显示定位。 01 准备工作 硬件准备 ●A9G开发板 ●GSM天线 ●GPS天线 ●S
    的头像 发表于 03-21 11:26 545次阅读
    安<b class='flag-5'>信</b>可A9G<b class='flag-5'>开发</b>板上报GPS定位数据实现<b class='flag-5'>微</b><b class='flag-5'>信</b><b class='flag-5'>公众</b><b class='flag-5'>号</b>定位显示