Python学习笔记(7.5.6 Django快速建站 - Web开发实战 微信公众号开发1)
前言:本文是学习网易微专业的《python全栈工程师 - Django快速建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!一、课程目标
- 了解微信公众号开发流程
- 实现内网穿透
- 完成微信公众号开发验证
- 订阅号:为媒体和个人提供的一种信息传播方式,主要偏于为用户传达资讯(类似报纸杂志),主要的定位是阅读,每天可以群发1条消息。
- 服务号:为企业,政府或组织提供对用户进行服务,主要偏于服务交互。
- 企业号:为企业、政府、事业单位,实现生产管理和协作运营的移动化,主要用于公司内部通讯使用,旨在为用户提供移动办公,需要先有成员的通讯信息验证才可以关注成功企业微信。
- 没有针对公众号做开发
文章图片
- 针对公众号进行开发
文章图片
2.2.开发者环境 2.2.1.内网穿透
- 内网穿透,网络地址转换(
Network Address Translation,NAT
):通过映射端口,能让外网的计算机找到处于内网的计算机。 - 将本地计算机设置成为开发者服务器:有公网可以访问的域名,公网域名与本地
IP
对应(如:127.0.0.1:8080
) - 打开:https://natapp.cn
– 用户注册
– 实名认证
– 下载客户端
文章图片
windows
:
文章图片
小编用windows
,自己下载只有一个natapp.exe
文件,后面在官网上下载了config.ini
这个文件Linux/Mac OS
–natapp
Step0:
创建免费隧道文章图片
step1
:免费购买隧道:文章图片
Step2
: 配置隧道文章图片
文章图片
这里要注意:由于是免费隧道,域名/端口会随机且不定时强制更换。所以,每次启动的时候,要检查一下是否有更换,有则跟着更换。
文章图片
- 在本地执行
–Linux/Mac OS
# 获得权限
% chmode a+x natapp# 这个在软件natapp同一个目录下执行的命令
% ./natapp # 显示认证错误
% ./natapp -authtoken your-token
如果有显示下面的结果,则表示本地执行成功:
文章图片
windows
:
文章图片
- 创建虚拟目录
python3 -m venv official
cd official
source ./bin/activate
- 安装
Django
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/django==2.2.10
- 创建项目
django-admin startproject wechat
在
settings.py
中配置公网域名ALLOWED_HOSTS = ['meq566.natappfree.cc', ]
- 测试
– 启动服务:wechat% python manage.py runserver 127.0.0.1:8080
– 用公网域名访问:http://meq5b6.natappfree.cc
- 地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
文章图片
文章图片
上图的token
是免费隧道里的token
。如何进行服务器验证呢?
- 网址:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
– 第一步:填写服务器配置
– 第二步:验证消息的确来自微信服务器
– 第三步:业务逻辑
- 接收来自微信服务器的信息
python manage.py startapp auth
# 安装第三方包
pip install wechatpy
wechatpy
官网:http://docs.wechatpy.org/zh_CN/master/
文章图片
Step1
配置路由wechat/urls.py
代码如下:from django.contrib import admin
from django.urls import path, include, re_pathurlpatterns = [
path('admin/', admin.site.urls),
re_path('^auth/?', include('auth.urls', namespace='auth')),
]
wechat/auth/urls.py
代码如下:from django.urls import path
from . import viewsurlpatterns = [
path('', views.auth, name='auth'),
]
Step2:
编写wechat/auth/views.py
中的auth
视图函数from django.shortcuts import render
from django.http import HttpResponse
from wechatpy.utils import check_signature
from wechatpy.exceptions import InvalidSignatureException# Create your views here.
def auth(request):
sign = request.GET.get('signature')
echostr = request.GET.get('echostr')
timestamp = request.GET.get('timestamp')
nonce = request.GET.get('nonce')
token = '免费隧道里的authtoken'
try:
check_signature(token, sign, timestamp, nonce)
except InvalidSignatureException:
raise
return HttpResponse(echostr)
上述准备做好后,可以点击测试公众号里的提交,结果如下图:
文章图片
三、课程小结
- 01、了解微信公众号
- 02、内网穿透
- 03、完成开发都验证
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 逻辑回归的理解与python示例
- 一起来学习C语言的字符串转换函数
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 定制一套英文学习方案