公众号平台配置

微信公众号官方平台 https://mp.weixin.qq.com

—设置IP白名单


—服务器配置


—获取AppID和AppSecret

—测试是否可获取access_token

1.get_access_token.py脚本

import requests
res=requests.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=填写AppID&secret=填写AppSecret")
print res.text

2.在服务器命令行执行该脚本

python get_access_token.py

3.access_token返回结果

{"access_token":"ACCESS_TOKEN","expires_in":7200}
  • 得到返回结果说明服务器和微信服务器通信正常

服务器端部署

环境准备

1.安装python3.7
将install_python.sh脚本文件保存在服务器端然后执行该文件

#!/bin/bash
#-*- coding:utf-8 -*-
#安装c编译器
yum install gcc
#安装依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
#下载Python-3.7.0.tgz
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
#解压Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz
#创建文件夹存放python
mkdir /usr/local/python3
#执行配置文件,编译,编译安装
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
#建立软连接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
#安装完成提示
echo '[提示] 已安装'
echo '[python版本]'
python -V
echo '----------------'

2.安装werobot依赖包

pip3 install werobot

项目文件

werobot框架开发文档https://werobot.readthedocs.io/zh_CN/latest/start.html

—客服机器人

运行文件robot.py

#-*-encoding:utf-8-*-
import werobot
from werobot.replies import *
import json
import os
import randomrobot=werobot.WeRoBot(token='wxgzh') # 微信公众号平台自定义的token
robot.config["APP_ID"] = "wxebfdd936d9598ef9" # 填写AppID
robot.config["APP_SECRET"]="896e570f7b712a6ac44d3554fb633ce0" # 填写App_Secret#自动创建数据文件
if not os.path.exists('reply.json'):f = open('reply.json', 'w', encoding='utf-8')json.dump({'': ''}, fp=f, ensure_ascii=False)f.close()@robot.text
def process_words(message):with open('reply.json','r',encoding='utf-8') as f:dic_data=json.load(f)for key in dic_data.keys():if key in message.content:return dic_data[key]else:other_reply=random.choice(['你说的是什么意思呀!','你慢点说嘛,人家有点听不懂了...'])return other_replyif __name__ == '__main__':robot.config['HOST'] = '0.0.0.0'robot.config['PORT'] = 80robot.run()

关键字定义文件set_key_reply.py

import json
import os
#自动创建数据文件
if not os.path.exists('reply.json'):f = open('reply.json', 'w', encoding='utf-8')json.dump({'hello': '你好'}, fp=f, ensure_ascii=False)f.close()#查看已定义回复内容
def all_key_reply():with open('reply.json', 'r', encoding='utf-8') as f:dic_data=json.load(fp=f)print("================================")print("[关键字]     [回复内容]")for k,v in dic_data.items():if isinstance(v,list):print(k+"\t\t\t"+"; ".join(v))elif isinstance(v,str):print(k+"\t\t\t"+v)else:print('存在错误数据!')print("================================")#增加自定义回复内容
def add_key_reply(key,reply_content):if isinstance(key,str) and isinstance(reply_content,str):with open('reply.json', 'r', encoding='utf-8') as f:dic_data = json.load(fp=f)dic_data.setdefault(key,reply_content)with open('reply.json','w',encoding='utf-8') as f:json.dump(dic_data,fp=f,ensure_ascii=False)print('关键字添加成功!')#删除自定义回复内容
def delete_key_reply(key):if isinstance(key,str):try:with open('reply.json', 'r', encoding='utf-8') as f:dic_data = json.load(fp=f)dic_data.pop(key)with open('reply.json', 'w', encoding='utf-8') as f:json.dump(dic_data, fp=f, ensure_ascii=False)print('关键字删除成功!')except KeyError:print('删除的关键字不存在!')#修改自定义回复内容
def change_key_reply(key,new_reply_content):if isinstance(key,str) and isinstance(new_reply_content,str):try:with open('reply.json', 'r', encoding='utf-8') as f:dic_data = json.load(fp=f)dic_data[key]=new_reply_contentwith open('reply.json', 'w', encoding='utf-8') as f:json.dump(dic_data, fp=f, ensure_ascii=False)print('修改成功!')except KeyError:print('修改的关键字不存在!')print('========自定义回复内容管理========')
print('1.查看全部关键字回复内容')
print('2.增加自定义回复内容')
print('3.删除自定义回复内容')
print('4.修改自定义回复内容')
while True:buttton=input('>>')if buttton == '1':all_key_reply()elif buttton == '2':key=input('请输入添加的关键字:')reply_content=input('请输入相应的回复内容:')add_key_reply(key,reply_content)elif buttton == '3':key=input('请输入要删除的关键字:')delete_key_reply(key)elif buttton == '4':key=input('请输入修改的关键字:')new_reply_content=input('请输入回复的内容:')change_key_reply(key,new_reply_content)else:print('输入有误!')

—美妆公众号机器人

#-*-encoding:utf-8-*-
import werobot
import requests
import datetime
import random
import os
import re
import json
import urllib
import sqlite3
from urllib import request
import urllib3
from aip import *
from werobot.replies import *
import time
#趣玩屋公众号
# robot=werobot.WeRoBot(token='wxgzh')
# robot.config["APP_ID"] = "wxebfdd936d9598ef9"
# robot.config["APP_SECRET"]="896e570f7b712a6ac44d3554fb633ce0"#超美的说
robot=werobot.WeRoBot(token='wxgzh')
robot.config["APP_ID"] = "wxc8a30722cb6fadeb"
robot.config["APP_SECRET"]="c4502ffdb4270657b1efb719e5e8a592"BUTTON_iw=False
chat_bot=False
client=robot.client#被关注后自动回复
@robot.subscribe
def subscribed():return '终于等到你,还好我没放弃~欢迎来到“超美的说”,我是美貌而不骄傲,疯狂而不单调的可爱酱^∨^希望这个奇妙的号能帮助你成为更好的自己。小提示:可以通过回复"菜单"来查看功能列表哦!												

【python】微信公众号开发相关推荐

  1. Python微信公众号开发平台

    上大学的时候,对微信公众号开发浅尝辄止的玩了一下,感觉还是挺有意思的. //www.jb51.net/article/133677.htm后来服务器到期了,也就搁置了.由于发布web程序,使用PHP很 ...

  2. python微信公众号开发教程_python微信公众号开发简单流程实现

    本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下 网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总 ...

  3. python 微信公众号开发[1] 后台服务器端配置与公众号开发配置

    更新时间:2020年3月7日 微信公众号开发的硬件必备条件:(1)申请一个公众号 (2)有公网ip的服务器(最好是阿里云,腾讯云等的云服务器)(3)解析到(2)中服务器地址的域名(阿里云,腾讯云购买即 ...

  4. Python 微信公众号开发

    大三上的时候,对微信公众号开发浅尝辄止的玩了一下,感觉还是挺有意思的.http://blog.csdn.net/marksinoberg/article/details/54235271 后来服务器到 ...

  5. Python微信公众号开发

    摘要: 大三上的时候,对微信公众号开发浅尝辄止的玩了一下,感觉还是挺有意思的.http://blog.csdn.net/marksinoberg/article/details/54235271 后来 ...

  6. python微信公众号开发音乐功能_python利用微信公众号实现报警功能

    python利用微信公众号实现报警功能 发布时间:2020-09-23 09:54:05 来源:脚本之家 阅读:84 作者:Python火火 微信公众号共有三种,服务号.订阅号.企业号.它们在获取Ac ...

  7. 基于python的微信公众号开发教程_基于python的微信公众号开发教程

    应广大python学员的期盼,九宝老师精心制作的"基于python的微信公众号开发"视频教程即将上线. 该课程秉承九宝培训一贯的"简单.高效.快速"的讲课原则, ...

  8. 基于python的微信公众号开发

    最近想自学服务器方面的知识,用微信公众号开发来练手.阅读了一些文章,实践以后总结一下. 租了腾讯云服务器,操作系统为 Ubuntu Server 14.04.1 LTS 64位,分配了一个公网IP地址 ...

  9. Python微信公众号后台开发003:自定义菜单

    有同学问道微信公众号后台开发的自定义菜单怎么实现? 这个问题本来想放到后面的,因为的确对公众号的影响挺明显的, 因为开启后台服务,公众号的自定义菜单就不见了,很影响使用, 也有同学问这个问题,就提前了 ...

  10. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

最新文章

  1. Linux压缩和解压缩命令集
  2. 单应性Homograph估计:从传统算法到深度学习
  3. GLM+广义线性模型
  4. 最大的问题是没有发现问题之一:谈谈滥用继承
  5. STM32的ISP升级详解
  6. Postman 使用 “status“: 415, “error“: “Unsupported Media Type“, “message“: “Content type ‘app
  7. iptables中关于limit和limit-burst的解释
  8. ios网址解析中,中文部分如何处理
  9. PHP5魔术函数与魔术常量
  10. java 新建菜单选项_请完成下列Java程序:创建一个下拉式菜单,菜单项包括3个CheckboxM..._考试资料网...
  11. python input 文件路径_python – 将目录路径作为用户输入的正确方法是什么?
  12. SpringBoot2.1.5 (9)--- GET 请求
  13. 【TensorFlow-windows】(零)TensorFlow的安装
  14. Python 字典(Dictionary) 基本操作
  15. tf卡可以自己裁剪成nm卡_[Vivado 2020.1]ZYNQ7020折腾之路(四)之荔枝糖Hex固化程序到TF卡...
  16. rapidminer java_在Java应用程序中集成RapidMiner
  17. Android Switch禁止手动切换状态
  18. 开发一个app需要多少钱、APP开发需要投入多少资金?
  19. XiaoHu.ai开发日志(自2018年2月6日至2019年4月11日)
  20. 使用迅搜制作站内搜索引擎-整合篇

热门文章

  1. 不用Bootcamp双系统,在Mac上跑Windows是啥感觉?
  2. linux usb摄像头驱动程序,Linux系统下USB摄像头驱动开发
  3. Palantir Gothan 的SWOT 分析
  4. android证书管理
  5. lisp方格网法计算土方量_方格网法计算土方工程量
  6. 基于RT-Thread的环境监测装置(含IO口模拟8080时序驱动TFT屏幕)
  7. linux挂载镜像iso文件作为yum源
  8. 股票交易接口的分类webService接口
  9. 使用分治法解最大连续子序列和问题
  10. Libgdx游戏编程之卡牌游戏UI布局