werobot教程

2020-01-06 宋洋葱 宋洋葱

安装werobot

pip install werobot cryptography bottle

如果创建自定义菜单失败,请登录微信公众号后台,点击开发-借口权限查看是否具有创建自定义菜单的权限。

配置AppID和AppSecret

  • 登录公众号–>开发–>基本配置–>启用
  • 配置好AppID、AppSecret、IP白名单并记录下AppSecret

enter description here

nginx反向代理配置

    location /wechat/ {
            proxy_pass_header Server;
            proxy_redirect off;
            proxy_pass http://127.0.0.1:8091/wechat/;
    }

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2020-01-06 13:18:25
# @Author  : songxueyan (sxy9103@gmail.com)
# @Link    : https://sxy91.com

from werobot import WeRoBot
import re
#from entity import save,update,query
#from util import send_email

robot = WeRoBot(token='sxy91')
robot.config["APP_ID"] = "YOUR APP_ID"
robot.config["APP_SECRET"] = "YOUR APP_SECRET"
robot.config['ENCODING_AES_KEY'] = 'YOUR ENCODING_AES_KEY'

client = robot.client

email_reg = re.compile(".*([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)")

@robot.filter("1")
def find_one():
	'''需要微信公众号开发电子书请回复“1”
	'''
    return "请提供你的邮箱" # 当用户发送“1”时,让用户提供邮箱

@robot.filter(email_reg)
def find_email(message, session, match):
	'''使用过滤器过滤出邮箱
	'''
	if match:
		email = match.group(1)
		u = update(message.source,email=email)
		if not u:
			uinfo = client.get_user_info(uid)
			uinfo['email'] = email
			#save(uinfo)
		#send_email(email) # 把电子书通过附件发送给用户
		return "已发"
	return "未知"

# 关注回复
hello_msg = "{nickname},欢迎你来到「下课了」。我是宋洋葱,将会在这里和你聊聊投资理财、写作和职场等话题。针对互联网工作的小伙伴将不定期发送内推渠道。\n1.需要电子书请回复1"

@robot.subscribe
def subscribe(message):
	'''用户关注后的回复
	'''
	user = client.get_user_info(message.source) # message.source相当于用户的user_id
	#save(user) # 把用户信息保存到数据库
	return hello_msg.format(nickname=user['nickname'])  # 回复欢迎语

@robot.unsubscribe
def unsubscribe(message):
	pass

from bottle import Bottle
from werobot.contrib.bottle import make_view

app = Bottle()
app.route(
    '/wechat/',  # WeRoBot 挂载地址
    ['GET', 'POST'],
    make_view(robot)
)

app.run(port=8091)

服务器配置

  • 开发–>基本配置–>修改配置
  • 填写好代码里的:URL、Token、EncodingAESKey后点击启用

enter description here

欢迎关注公众号「下课了」测试,或者加入QQ交流群:334118484。