Python微信公众号开发
最近老大叫我学习开发微信,试着玩了下。网上查了下文档。有点过时。
简单步骤:
1)申请服务器并完成环境配置
去腾讯云购买云服务器。当然你也可以购买其他产品,比如阿里云。因为我是学生,有优惠110一年。我开的是centos7的操作系统。linux的一个版本。开通后可以看到自己的公网IP。

这里我用的是xshell。可以直接连接自己的Linux服务器。当然你也可以去腾讯云自己登录。输入ssh 上面得公网IP.然后点击接受并保存。
777
之后会提示用户名,输入root,再弹出输入密码。密码可以去腾讯云里得站内信看,或者更改。 到这里,应该连接成功了。



先验证下python吧,可以看到输为3.6.5。因为开发微信公众号要安装python,而centos自带python2.7。我另外装了个python3.6的。因为再学习和开发中,一个版本是不够的。而版本多了的话,又会出现很多问题。这里不说。有另外文章说明Linux的版本共存和控制问题。还要一个问题就是liunx命令,不管你懂是不懂。这是我自己以前整理的linux基本命令思维导图。还不完整,但是基本的都有了,你们可以参考。之后还要安装一些开发所需要的库。,通过pip命令,这里也不多讲,都是很简单的事。命令如下:
pip install web.py
pip install libxml2
pip install libxslt
pip install lxml
2)测试服务器
输入命令:vim main.py(点击查看vim基本命令)
编辑代码:
# coding=utf-8
#filename: main.py
import web
urls=(
'/dzsoft','Handle'
)
class Handle(object):
def GET(self):
return "hello,world"
if __name__ == '__main__':
app=web.application(urls,globals())
app.run()
编辑完之后运行:python main.py 80。

然后浏览器运行,把0.0.0.0替换成服务器的IP。如下图显示,hello,world

3)公众号token配置
公众号我已经申请了,点击左下角的基本配置,服务器配置。如下图:

此时点提交没用,因为服务器还不知道你的暗号。回去修改main.py。要添加一个文件。名为handle。代码应该看的懂不。不讲解。
#coding=utf-8
#filename: main.py
import web
from handle import Handle
urls=(
'/dzsoft','Handle'
)
if __name__ == '__main__':
app=web.application(urls,globals())
app.run()
# coding: utf-8
# filename: handle.py
import hashlib
import web
class Handle (object):
def GET(self):
data=web.input() #获取输入参数
if len(data)==0:
return 'o,xjm'
signature = data.signature
if len(signature)==0:
return 'lalala'
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "xjm" #令牌,与服务器配置保持一致
list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
map(sha1.update, list)
hashcode = sha1.hexdigest()
if hashcode == signature:
return echostr
print(echostr)
else:
return ""
handle.py
这里有个坑,我之后提交时token一直验证失败,因为我用的是python3版本。后面我在python2环境下提交代码。token验证成功。
4)机器人自动回复功能
机器人是图灵的api。通过发送POST请求。代码我写好了。
Python微信公众号开发的更多相关文章
- Python微信公众号开发—小白篇
本文面向想通过Python学习公众号开发的同学.一站式解决新手开发微信公众号遇到的所有问题. 为了防止我的文章被到处转载,贴一下我的公众号[智能制造专栏],欢迎大家关注. github仓库地址http ...
- Python微信公众号开发—小白篇(1)
本文面向想通过Python学习公众号开发的同学.一站式解决新手开发微信公众号遇到的所有问题. 为了防止我的文章被到处转载,贴一下我的公众号[智能制造社区],欢迎大家关注. github仓库地址http ...
- python微信公众号开发学习记录
网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总结一下开发的一些简单流程. 一先去注册个微信公众号,这个就不详细说了, 二登录后 ...
- [Python] 微信公众号开发 Python3
搭建服务 开通一个阿里云ecs,安装python3及需要的包(参考下方官方文档) 将py文件保存在ecs上,运行 在本地访问阿里云的IP地址 能完成这步说明网络没问题 server.py 1 # -* ...
- python之微信公众号开发(基本配置和校验)
前言 最近有微信公众号开发的业务,以前没有用python做过微信公众号开发,记录一下自己的学习和开发历程,共勉! 公众号类型 订阅号 普通订阅号 认证订阅号 服务号 普通服务号 认证服务号 服务方式 ...
- 微信公众号开发被动回复用户消息,回复内容Content使用了"\n"换行符还是没有换行
使用语言和框架:本人后端开发使用的Python的DRF(Django REST framework)框架 需求:在微信公众号开发时,需要实现自动回复,即被关注回复.收到消息回复.关键词回复 发现问题: ...
- Python微信公众号教程基础篇——收发文本消息
1. 概述: 在本篇教程中,你将学会使用华为云弹性云服务器(以下简称 ECS)搭建微信公众号处理后台,使用Python语言编写对应的微信消息处理逻辑代码,接收从微信服务端转发过来的消息,并返回处理结果 ...
- 微信公众号开发(一)--验证服务器地址的Java实现
现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...
- C#微信公众号开发系列教程三(消息体签名及加解密)
http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...
随机推荐
- 深入理解 JSX
JSX 是一个看起来很像 XML 的 JavaScript 语法扩展.React 可以用来做简单的 JSX 句法转换. 为什么要使用 JSX? 你不需要为了 React 使用 JSX,可以直接使用纯粹 ...
- 【翻译】Ext JS最新技巧
原文:Top Support Tips Mitchell Simoens:控制滚动指示器的自动隐藏 Sencha Touch有一个跨平台的,在所有平台看起来和工作效果都一样的滚动条.两条轴(x和y,水 ...
- Stochastic Gradient Descent 随机梯度下降法-R实现
随机梯度下降法 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 批量梯度下降法在权值更新前对所有样本汇总 ...
- Struts2中的缓存----以Injector为例
题外话,文章中有大量的标识1 标识2,大家可以用ctrl+f来查找. 构成缓存的类 主要就是以下两个: com.opensymphony.xwork2.inject.util.ReferenceCac ...
- AngularJS进阶(十二)AngularJS常用知识汇总(不断更新中....)
AngularJS常用知识汇总(不断更新中....) 注:请点击此处进行充电! app.controller('editCtrl',['$http','$location','$rootScope', ...
- ReentrantReadWriteLock读写锁的使用1
本文可作为传智播客<张孝祥-Java多线程与并发库高级应用>的学习笔记. 一个简单的例子 两个线程,一个不断打印a,一个不断打印b public class LockTest { publ ...
- 开源项目Git地址
1.陈明.李建勋.邓覃思 fog-aliyun https://git.oschina.net/dengqinsi/fog-aliyun.git 2.吴俊.骆仲军.袁良福 CDN的H5助 ...
- JFinal开发环境搭建,JFinal开发案例
JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java 语言所 ...
- 【Qt编程】基于Qt的词典开发系列<十三>音频播放
在上一篇文章中,我是在Qt4平台上调用本地发音的,后来由于用到JSON解析,就将平台转到了Qt5,因为Qt5自带解析JSON的类.然后发现上一篇文章的方法无法运行,当然网上可以找到解决方法,我在这里直 ...
- C语言之多线程机制(程序可以同时被执行而不会相互干扰)
接触过linux的人或多或少知道,linux有多线程的机制,也就是说程序可以同时执行,不受干扰,关于这个在我以前的博文里有过类似模拟的时间片轮转程序,跟这个其实是类似的.其实在window上,线程的头 ...