使用Python逐步构建微信公众平台(1)

电脑杂谈  发布时间:2020-04-05 22:14:33  来源:网络整理

微信公众平台 python_python开发微信公众平台_python微信公众平台

最近很无聊,想玩微信公众平台,后来发现乐趣无穷〜

使用的工具python开发微信公众平台,python新浪SAE平台,微信公众平台

您需要先在微信的公共平台和新浪SAE平台上注册. 在微信平台上注册时,您需要拍摄照片和几天的审核期

微信公众平台:

新浪SAE:

等待微信公众审批后,登录公众平台并点击高级功能. 您将看到需要提供访问信息:

微信接口配置

微信界面配置

然后,我们需要一个URL作为接口(在这种情况下,我们需要在SAE上构建一个Python应用程序). 令牌相当于我们与微信之间商定的“密码”. 您可以在此处填写英文或数字,但是有时实际输入的纯数字会出现问题,因此字符串更可靠.

微信公众平台 python_python开发微信公众平台_python微信公众平台

第一步是在SAE上构建python应用程序,然后在下面的应用程序中选择python应用程序.

iELK05K8pJTk2

填写二级域名和应用程序名称等,然后选择一种好的语言. 在这里,我们使用Python开发和选择Web应用程序. 创建应用程序后,在代码管理中创建一个新版本. 然后,我们可以选择编辑代码. 实现编辑,无需配置本地环境,SVN等. 当然,如此轻巧的应用程序编辑器就足够了python开发微信公众平台,SVN不如编辑好.

第二步是编写index.wsgi

由于我们使用了web.py框架,由于它具有良好的xml解析能力,我们希望了解web.py的童鞋可以移动

先写config.yaml

name: yangyanxing
version: 1
libraries:
- name: webpy 
  version: "0.36"
- name: lxml
  version: "2.3.4"
...

请注意严格的缩进,如果有空格,您将作废!而且调试时很难发现问题. .

然后我们继续编写index.wsgi

python微信公众平台_微信公众平台 python_python开发微信公众平台

# coding: UTF-8
import os
import sae
import web
from weixinInterface import WeixinInterface
urls = (
'/weixin','WeixinInterface'
)
app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)
app = web.application(urls, globals()).wsgifunc()        
application = sae.create_wsgi_app(app)

简要说明,

from weixinInterface import WeixinInterface

这里我们需要创建另一个weixinInterface的py文件,您也可以在index.wsgi文件中编写此类,但看起来会很混乱

创建一个新的weixinInterface.py文件,注意大写并编写以下代码

# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree
class WeixinInterface:
    def __init__(self):
        self.app_root = os.path.dirname(__file__)
        self.templates_root = os.path.join(self.app_root, 'templates')
        self.render = web.template.render(self.templates_root)
    def GET(self):
        #获取输入参数
        data = web.input()
        signature=data.signature
        timestamp=data.timestamp
        nonce=data.nonce
        echostr=data.echostr
        #自己的token
        token="yangyanxing" #这里改写你在微信公众平台里输入的token
        #字典序排序
        list=[token,timestamp,nonce]
        list.sort()
        sha1=hashlib.sha1()
        map(sha1.update,list)
        hashcode=sha1.hexdigest()
        #sha1加密算法        
        #如果是来自微信的请求,则回复echostr
        if hashcode == signature:
            return echostr

这里定义了一个GET方法,该方法基于微信公众平台对令牌验证的要求,因为在这里我们将templates_root定义为根目录中的模板,因此我们还必须在根目录模板目录下创建一个目录<<

开发人员通过检查签名来验证请求. 如果确认GET请求来自微信服务器,请直接返回echostr参数内容,则访问将生效,否则访问将失败.

签名将开发人员填写的令牌参数与请求中的timestamp参数和nonce参数结合在一起.

微信公众平台 python_python开发微信公众平台_python微信公众平台

加密/验证过程:

1. 按字典顺序对令牌,时间戳和随机数参数进行排序

2. 将三个参数字符串拼接为一个字符串以进行sha1加密

3. 可以将开发人员获得的加密字符串与签名进行比较,以识别请求源自微信

由于微信发送了验证信息GET,所以这里我们使用GET方法获取值并返回相关的应用程序值

全部保存,现在回到微信公众平台高级管理界面

微信接口配置

在URL中,在Sina SAE中填写您的应用程序名称并添加/ weixin,例如: 令牌可以自由输入,只要您注意在weixinInterface.py中更改令牌,输入后单击“确定”,如果没问题,将通过验证!

第三步是创建一个简单的自动回复方法,即鹦鹉学习舌头,也就是说,用户所说的话,它也会响应,这是没有用的,只是随便玩!

python微信公众平台_微信公众平台 python_python开发微信公众平台

继续在weixinInterface.py中添加代码

def POST(self):        
        str_xml = web.data() #获得post来的数据
        xml = etree.fromstring(str_xml)#进行XML解析
        content=xml.find("Content").text#获得用户所输入的内容
        msgType=xml.find("MsgType").text
        fromUser=xml.find("FromUserName").text
        toUser=xml.find("ToUserName").text
        return self.render.reply_text(fromUser,toUser,int(time.time()),u"我现在还在开发中,还没有什么功能,您刚才说的是:"+content)

此定义与上一个GET处于同一级别,请注意缩进

接下来,我们在模板目录中创建reply_text.xml模板文件,并编写以下代码

$def with (toUser,fromUser,createTime,content)
<xml>
<ToUserName><![CDATA[$toUser]]></ToUserName>
<FromUserName><![CDATA[$fromUser]]></FromUserName>
<CreateTime>$createTime</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[$content]]></Content>
</xml>

请注意,此处的toUser和fromUser与刚才的帖子相反,因为此处的toUser也是POST函数中的fromUser,这里的fromUser也是POST函数中的toUser,msgType是文本

保存所有内容,现在您正在使用个人微信关注您创建的公共微信,然后输入一些内容. 如果没有问题,您会收到鹦鹉学习舌头的回复!

接下来,我们使用有道翻译API制作翻译工具

使用Python逐步构建微信公众平台(二)----构建用于汉英翻译的翻译工具

使用Python逐步构建微信公众平台(3)-在用户关注后添加欢迎信息和音乐收听功能

使用Python逐步构建微信公众平台(四)----将一只小黄鸡引入微信自动回复中

使用Python逐步构建微信公众平台(5)----使用mysql服务记录用户反馈

参考文章: %E5%88%A9%E7%94%A8sae%E6%90%AD%E5%BB%BA%E5%BE%AE%E4%BF%A1%E5%85%AC%E4 %BC%97%E5%B9%B3%E5%8F%B0%EF%BC%88%E4%B8%80%EF%BC%89web-py%E5%AE%9E%E7%8E%B0%E7 %9A%84sae-hello-world /


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-165213-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 张淞寒
        张淞寒

        一起去追求公平公义

      热点图片
      拼命载入中...