微信公众号url接口配置,使微信公众号更多功能化(python简单解决)

使用python几行代码解决在一台云服务器实现微信公众号服务器配置。


前言

微信公众号服务器配置,对公众号的部分功能实现有着基石作用。本文章将用python的一款轻量级的Web应用框架web.py实现url接口的配置。


准备需要

需要工具:一台云服务器、云服务器上的python3+、web.py、微信公众号(测试号)。

云服务器的选择配置、python的配置和微信公众号测试号的申请注册可参考的前面的博客《Python实现公众号每日自动发早/晚安消息(详细教程)》的第一节和第四节。


一、了解微信公众号与服务器配置连接过程

第一步:填写服务器配置

 登录微信公众平台官网后,在公众平台官网的开发 - 基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中 URL 是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档 

测试号画面如下(只有URL和Token):


 

第二步:验证消息的确来自微信服务器 

开发者提交信息后,微信服务器将发送 GET 请求到填写的服务器地址 URL 上,GET请求携带参数如下表所示:

参数

描述

signature

微信加密签名,signature结合了开发者填写的 token 参数和请求中的 timestamp 参数、nonce参数。

timestamp

时间戳

nonce

随机数

echostr

随机字符串

开发者通过检验 signature 对请求进行校验(下面有校验方式)。若确认此次 GET 请求来自微信服务器,请原样返回 echostr 参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与 signature 对比,标识该请求来源于微信。


二、配置URL与连接

配置大致分为四步:

1)首先需要用云服务器创建一个接收外来访问的web服务器

2)web服务器对微信服务器发送的GET请求进行解析提取对应字段

3)将web服务器的token、timestamp、nonce字典排序,拼接排序

4)判断自己的字符串是否与signature一致,一致则成功,不一致则不处理。

图解:


三、python实现 

1.初步了解web.py

  web.py的下载(注意是web.py,不是只有一个web)

  最新0.62版本支持 Python >= 3.5。版本0.51是支持 Python 2.7 的最后一个版本。

pip3 install web.py
import web
#------------------
# 第一部分
urls = (
    '/', 'index'
)

#------------------
# 第二部分
class index:
    def GET(self):
        return "Hello, Get!"
    def POST(self):
        return "Hello, Post!"
#------------------

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

第一部分是匹配URL的正则表达式,像/、/help/faq、/item/(\d+)等(\d+将匹配数字)。圆括号表示捕捉对应的数据以便后面使用。第二部分是接受请求的类名称,像index、view、welcomes.hello (welcomes模块的hello类),或者get_\1。\1 会被正则表达式捕捉到的内容替换,剩下来捕捉的的内容将被传递到你的函数中去。

第二部分是web.py有明确区分的get和post方法,当用不同的请求访问时,返回不一样的内容。

ps:Web.py的更多详细使用方法可去官网新手指南阅读学习。

2.代码实现

1.main.py运行函数

建立服务器

# -*- coding: utf-8 -*-
# filename: main.py
import web

urls = (
    '/wx', 'Handle',
)

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

2.Handle.py 验证函数

get方法验证数据,返回数据

import web
import hashlib

class Handle(object):
    def GET(self):
        try:
            data = web.input()
            print(data)
            if len(data) == 0:
                return "hello,congratulations on finding me"
            signature = data.signature
            timestamp = data.timestamp
            nonce = data.nonce
            echostr = data.echostr
            # 自己填写自己token
            token = ""

            list = [token, timestamp, nonce]
            list.sort()
            s = list[0] + list[1] + list[2]
            hashcode = hashlib.sha1(s.encode('utf-8')).hexdigest()
            print("handle/GET func: hashcode, signature: ", hashcode, signature)
            if hashcode == signature:
                return echostr
        except Exception as Argument:
            return Argument
#消息自动回复、菜单连接等、将有post方法解决
#    def POST(self):

3.部署到服务器

服务器的配置、宝塔面板的配置进入和python的云服务器布置 见我之前的博客 《Python实现公众号每日自动发早/晚安消息(详细教程)》的第一节和第四节。

进入宝塔面板,先进入终端,下载web.py。

pip3 install web.py

随后在文件创建一个GongZhongHao(名字可以自己拟定)的文件夹,上传文件到刚刚创建的文件夹下。

  就在刚刚创建的文件夹下,点击终端运行下方代码,运行成功会出现: http://0.0.0.0:80/http://0.0.0.0:80/ 

http://0.0.0.0:80/(80是端口号,因为微信公众号接口必须以http://或https://开头,分别支持80端口和443端口)

python3 main.py 80

不要关闭终端窗口,来到测试号,填写你的url和token,并提交。(你的url是:http://服务器公网ip:80/wx)

如果成功则有:


 就这样服务器url接口就配置好了。虽然url接口配置好了,但是现在公众号的服务器并没有加功能,公众号并不能做什么,需要后面再添加内容。

(都看到这里了,如果你觉得对你有所帮助,就留下你宝贵的赞吧!!!!)

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用Python开发微信公众号,常用的Python库包括itchat、wechatpy、wxpy等。这些库可以帮助开发者实现微信公众号的功能,例如自动回复、消息推送、菜单设置等。 其中,itchat是一个非常流行的Python库,提供了微信个人号和公众号的API,可以通过Python代码来实现微信的自动操作。而wechatpy则是一个专门针对微信公众号Python库,支持高级接口和企业微信接口,可以方便地进行公众号开发。 wxpy则是一个基于itchat的Python库,可以快速地实现微信机器人的开发,具有良好的扩展性和定制性。通过wxpy,开发者可以轻松地实现微信自动回复、消息推送和群聊机器人等功能。 总之,使用Python开发微信公众号可以大大提高开发效率,使得开发者可以加专注于业务逻辑的实现。 ### 回答2: Python 微信公众号是一个使用Python编程语言开发的微信服务平台。它提供了丰富的功能和工具,可以帮助开发者创建和管理自己的微信公众号。 首先,Python 微信公众号可以实现接收和发送消息的功能。开发者可以通过编写Python代码来处理用户发送的文本、图片、音频等消息,并根据需要进行相应的回复。这为开发者提供了与用户实时互动的机会,可以好地满足用户的需求。 其次,Python 微信公众号还支持自定义菜单的创建和管理。开发者可以通过简单配置文件或代码来创建自己的菜单,包括一级菜单和二级菜单。这样用户在关注公众号后,就可以通过菜单快速访问所需的功能,提高用户的使用体验。 此外,Python 微信公众号还可以实现素材管理的功能。开发者可以上传和管理素材,包括图文消息、图片、视频等,方便随时公众号的内容。通过这个功能,开发者可以灵活地运营公众号,提供多有趣和有用的内容。 最后值得一提的是,Python 微信公众号还支持数据统计和分析功能。开发者可以获取公众号的用户数量、关注和取消关注的动态等信息,并可以通过分析工具进行数据分析,了解用户的兴趣和行为习惯,从而好地为用户提供个性的服务。 综上所述,Python 微信公众号是一个强大的工具,可以帮助开发者轻松创建和管理自己的微信公众号,提供好的用户体验和优质的服务。无论是个人开发者还是企业,都可以通过Python 微信公众号实现自己的创业梦想或运营需求。 ### 回答3: Python 微信公众号是基于Python开发的一个平台,可以通过微信公众号进行各种与Python相关的操作和交流。在这个公众号中,用户可以学习Python语言的基础知识、进阶技巧以及实际应用。公众号会提供Python编程入门教程, 提供一些编程示例和案例,帮助用户好地理解和掌握Python的使用。 公众号的功能还包括推送最新的Python技术热点和行业动态,让用户了解Python在各个领域的应用和发展趋势。同时,公众号还会分享一些Python编程的实践经验和技巧,帮助用户解决实际应用中遇到的问题。 此外,Python 微信公众号还会定期举办一些线上线下的活动,如Python编程比赛、技术分享会等,旨在促进Python开发者之间的交流和学习。 总体来说,Python微信公众号是一个面向Python开发者和爱好者的平台,通过这个公众号,用户可以获取到Python语言相关的最新资讯、学习资源和社区互动,提升自己的编程能力和技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLGululu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值