目录

  • 一、搭建服务器
    • 1.1 云服务器租用
    • 1.2 添加安全组规则
  • 二、微信公众平台注册及配置
    • 2.1 注册微信公众平台账号
    • 2.2 服务器配置
    • 2.3 vim的使用
      • 2.3.1 模式转换
      • 2.3.2 更多操作
  • 三、基本功能部署
    • 3.1 鹦鹉学舌
    • 3.2 高级功能接入

一、搭建服务器

1.1 云服务器租用

本文中使用的云服务器为腾讯云提供的学生云服务器,通过账号注册、实名认证以及学生信息认证即可进行购买。本文中所使用的服务器配置为:1核2G,1M带宽,系统盘为高性能云硬盘,使用的操作系统为CentOS 8.4 64位。购买完成后,进入腾讯云的控制台管理页面,即可进行服务器的管理,如图1所示。

图1 服务器管理界面

1.2 添加安全组规则

为了实现外网对服务器的访问,便需要在服务器实例的安全组列表中添加相应的安全组规则,以开放对应端口,配置规则如图2所示。

图2 服务器管理界面

二、微信公众平台注册及配置

2.1 注册微信公众平台账号

进入微信公众平台官网并根据指引进行微信公众号的注册。具体的注册流程如下:

  1. 填写用户基本信息;
  2. 选择帐号类型,在本文中选择为订阅号;
  3. 选择主体类型为个人并进行个人信息的填写;
  4. 填写开发的微信公众平台账号信息,包括帐号名称、功能介绍等。

完成以上步骤后,可得到微信公众平台帐号如图3所示。

图3 微信公众平台帐号信息

2.2 服务器配置

以下配置根据微信官方文档进行。
现在Linux服务器一般自带python2,这里自带的是python3。

查看python版本。

python --version

安装/更新需要用到的软件。

pip3 install web.py
pip3 install lxml
yum -y install libxml2
yum -y install libxslt

需要注意的是,官方文档提供的是python2的代码,和python3稍有区别。代码按照python3修改后如下:
vim main.py

# -*- coding: utf-8 -*-
# filename: main.py
import web
from handle import Handleurls = ('/wx', 'Handle',
)if __name__ == '__main__':app = web.application(urls, globals())app.run()

vim handle.py

# -*- coding: utf-8 -*-
# filename: handle.pyimport hashlib
import webclass Handle(object):def GET(self):try:data = web.input()if len(data) == 0:return "hello, this is handle view"signature = data.signaturetimestamp = data.timestampnonce = data.nonceechostr = data.echostrtoken = "hello2022" # 此处需要替换list = [token, timestamp, nonce]list.sort()sha1 = hashlib.sha1()sha1.update(list[0].encode('utf-8'))sha1.update(list[1].encode('utf-8'))sha1.update(list[2].encode('utf-8'))hashcode = sha1.hexdigest()print("handle/GET func: hashcode, signature: ", hashcode, signature)if hashcode == signature:return echostrelse:return ""except(Exception, Argument):return Argument

图4 服务器配置说明

其中,URL为关联服务器的地址,当微信用户向该公众号发送消息时,微信平台会将包含该消息内容的XML数据包发送到该服务器。

2.3 vim的使用

通过熟练使用vim,可以加快代码的编写。
vim有三种模式:命令模式、插入模式和底行模式。
输入vim xxx.py,即进入命令模式。

2.3.1 模式转换

在命令模式下,输入i,进入插入模式,即可在光标后输入文本。
在插入模式下,按Esc键,返回命令模式。
在命令模式下,输入:,进入底行模式,继续输入wq则保存后退出。
在底行模式下,同样是按Esc键,返回命令模式。

2.3.2 更多操作

Linux操作系统中,ctrl+insert是复制,shift+insert是粘贴。
在命令模式下,输入gg跳转到首行,shift+g跳转到末行,shift+6跳转到光标所在行的末尾。
在底行模式下,若继续输入w则保存修改不退出,若继续输入q则不保存直接退出。如果最后加!,表示强制执行,比如在只读时:wq!,则会强制保存修改并退出。

三、基本功能部署

3.1 鹦鹉学舌

实现鹦鹉学舌,即把发来的话作为回复发回去。
main.py文件不改变,handle.py 需要增加代码。增加新的文件receive.py, reply.py,与官方文档相同,不再粘贴代码。
vim handle.py

# -*- coding: utf-8 -*-#
# filename: handle.py
import hashlib
import reply
import receive
import web
class Handle(object):def POST(self):try:webData = web.data()print "Handle Post webdata is ", webData#后台打日志recMsg = receive.parse_xml(webData)if isinstance(recMsg, receive.Msg) and recMsg.MsgType == 'text':toUser = recMsg.FromUserNamefromUser = recMsg.ToUserNamecontent = recMsg.Content.decode('utf-8') # 文本消息replyMsg = reply.TextMsg(toUser, fromUser, content)return replyMsg.send()else:print "暂且不处理"return "success"except Exception, Argment:return Argment

效果如图5所示。

图5 聊天结果展示

3.2 高级功能接入

未来可以添加自然语言处理的模型,实现聊天机器人等高级功能。

面向情绪交互的聊天机器人系统的设计与实现 by 陈龙
微信官方文档
token验证失败百分百解决

微信公众号开发者模式入门相关推荐

  1. 微信公众号基本设置服务器设置教程,最新最全的微信公众号开发者模式配置

    微信公众号的开发分为编辑模式和开发者模式,那么最新最全的微信公众号开发者模式配置是什么呢,下面是学习啦小编收集整理的最新最全的微信公众号开发者模式配置,希望对大家有帮助~~ 最新最全的微信公众号开发者 ...

  2. 微信开发者模式php,php 开启微信公众号开发者模式

    php 开启微信公众号开发者模式 /** * wechat php test */ header('Content-type:text'); //define your token //定义TOKEN ...

  3. 微信开发者模式php,PHP实现模拟微信公众号开发者模式

    本文主要和大家分享PHP实现模拟微信公众号开发者模式,主要以代码的形式和大家分享,希望能帮助到大家.$url = 'http://xxxx.com/test/aaaa/index.php';//开发者 ...

  4. 用spring搭建微信公众号开发者模式下服务器处理用户消息的加密传输构架(java)

    要搭建加密传输的微信公众号消息传输,首先要在开发这平台下载一下微信加密的相关jar包,并做一些准备.准备的步骤如下: 1.打开开发者文档,找到消息加减密--->接入指引,如下图所示: 2.在页面 ...

  5. java调用微信加密_用spring搭建微信公众号开发者模式下服务器处理用户消息的加密传输构架(java)...

    要搭建加密传输的微信公众号消息传输,首先要在开发这平台下载一下微信加密的相关jar包,并做一些准备.准备的步骤如下: 1.打开开发者文档,找到消息加减密--->接入指引,如下图所示: 2.在页面 ...

  6. 微信公众号开发者模式回复信息带表情(QQ,emoji)

    最近做微信公众号的迭代 老板非要发送消息带表情 我调研了网上的各种方法 各种开源代码和项目经验 没一个能用的- o(╥﹏╥)o emoji 下面是整个流程 首先,我自己测试,先往公众号发表情,后台去接 ...

  7. 微信公众号开发者模式菜单不更新的问题

    这个问题困扰了我好几天,度娘到的都是24小时内,然而到了24小时并没有什么卵用. 开发者模式下,后台的菜单信息更新后,微信服务器并没有来拉取菜单数据,所以我们自己动手让它来拉取菜单信息. 官方debu ...

  8. 什么是php微信开发,php微信公众号开发模式详解

    这篇文章主要介绍了php微信公众号开发者模式,通过后台服务器与微信关注用户实现更多的交互作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 学习步骤:分四章来讲述这部分内容,下面是每章的大致内容. ...

  9. 微信公众号开发者自动回复php,微信公众平台开发者模式的启用并自动回复

    这篇文章介绍的内容是关于微信公众平台开发者模式的启用并自动回复,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 首先,什么是开发者模式? 开发者模式,就是先验证你的服务器地址,验证完成之 ...

  10. 微信公众号开发者原生态的servlet

                                                微信公众号开发者原生态的servlet 如果想要成功成为微信公众号开发者,那么首先就是要服务器与微信公众号接入 ...

最新文章

  1. sqlserver 新建只读权限用户
  2. Laravel5中Cookie的使用
  3. R语言警告:Cannot compute exact p-value with ties的处理方法
  4. Ubuntu16.04下Hadoop的本地安装与配置
  5. 操作系统锁的实现方法有哪几种_「从入门到放弃-Java」并发编程-锁-synchronized...
  6. 公众号精选评论点赞_12月评论:前10名和编辑精选
  7. 理解Angular的Reactive Form
  8. jQuery操作动画队列
  9. 大工20春计算机文化基础在线测试1,大工20春《计算机文化基础》在线测试1学习答题资料...
  10. js高级学习笔记(b站尚硅谷)-10-instanceof
  11. 《最新黑客攻防实战从入门到精通(第2版)》.(武新华, 孙振辉 ).[PDF]ckook
  12. SQLServer 2012下载及安装教程
  13. 动态面板数据模型及Eviews实现
  14. 对代码签名另一种认识(下)
  15. PyQt5入门(三)
  16. Navicat15安装使用
  17. 一键装机linux_教你如何使用u盘安装Linux系统
  18. 07 Confluent_Kafka权威指南 第七章: 构建数据管道
  19. 获取application.yml文件中配置参数的两个方法
  20. 芝加哥大学计算机博士年薪,专排TOP6芝加哥大学统计学博士录取

热门文章

  1. div+css实现盖章
  2. 2020-12-25
  3. MATLAB GUI中显示数学公式
  4. TensorFlow北大公开课学习笔记-4.3滑动平均
  5. 职称计算机execl试题,职称计算机考试EXCEL操作题
  6. ERP企业管理系统与CRM客户关系管理系统集成套路
  7. 正态分布某一点的概率怎么算_标准正态分布+标准正态分布概率表+分布函数+积分...
  8. 使用Excel处理姓名数据,转为拼音并且姓与名首字母大写
  9. 自建KMS激活服务器:CentOS安装vlmcsd搭建
  10. 三级流域空间分布图_水资源空间分布模型及GIS分析应用.pdf