博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信公众号之订阅号开发 - 智能机器人对话(仅限文本类型)
阅读量:2240 次
发布时间:2019-05-09

本文共 3870 字,大约阅读时间需要 12 分钟。

一、注册公众号

  微信公众平台:

1、注册账号

  1)选择账号类型

  2)填写注册邮箱(注意,一个邮箱只能注册一种账号)

  3)选择类型(注意,一旦建立账号,类型不可更改)

 

  4)填写个人信息

    到此,微信公众号的注册基本完成,接下来看几个配置。

  5)在左侧菜单“开发” - > “基本配置”,可查看基本配置参数,如下:

 

  6)在自己的服务器上安装nginx,具体步骤可参照博客:

  7)nginx.conf配置如下:

server {        listen       80;        # 配置成自己服务器的url地址        server_name  39.xx.xx.130;        ......        location / {             # 配置nginx的反向代理功能,自己服务器的5000端口,因为接下来的项目使用flask,且将其运行在自己的服务器的5000端口            proxy_pass  http://39.xx.xx.130:5000;              # root   html;            # index  index.html index.htm;        }        ......  }

  8)首次启用需要配置微信服务器,如下代码(前提是在虚拟环境下已经安装好 flask ):

from flask import Flask, requestfrom xml.etree import ElementTree as ETapp = Flask(__name__)@app.route('/')def index():    # 配置微信服务器    if request.method == 'GET':        echostr = request.args.get('echostr')        return echostr      # 给微信服务器返回echostr,则认证成功
if __name__ == '__main__':    app.run('0.0.0.0', port=5000, debug=True)

    可先使用命令运行该脚本,配好自己的服务器后再去开发和部署下面二次开发微信订阅号的项目代码。

  9)在服务器合适的位置新建一个目录,在此目录下建立对微信订阅号的二次开发项目代码,目录结构如下:

/root/my_flask        ├── app        │   ├── __init__.py         │   ├── templates        │   │       └── index.html        │   └── views        │         └── wx_demo.py        ├── logs        ├── manager.py        └── settings.py 
from flask_script import Managerfrom app import create_appmy_app = create_app()manager = Manager(my_app)if __name__ == '__main__':    manager.run()
manager.py
# 图灵机器人配置TULING_URL = 'http://openapi.tuling123.com/openapi/api/v2'TULING_STR = {    "reqType":0,    "perception": {        "inputText": {            "text": ""        }    },    "userInfo": {        "apiKey": "17cec68551c847c59ac48a5a9dd00327",        "userId": ""    }}
settings.py
from flask import Flask# 引入蓝图from .views.wx_demo import wx_bpdef create_app():    my_app = Flask(__name__)    my_app.register_blueprint(wx_bp)    return my_app
app/__init__.py
from flask import Blueprint, request, render_template, make_responsefrom xml.etree import ElementTree as ETimport timeimport requestsfrom settings import TULING_URL, TULING_STRwx_bp = Blueprint('wx_bp', __name__)def tuling(text, userid):    print(type(text), type(userid))    TULING_STR['perception']['inputText']['text'] = text    TULING_STR['userInfo']['userId'] = '111'    res = requests.post(TULING_URL, json=TULING_STR)    print(res.json().get("results")[0].get("values").get("text"))    return res.json().get("results")[0].get("values").get("text")@wx_bp.route('/', methods=['GET', 'POST'])def index():    # 配置微信服务器    # if request.method == 'GET':    #     echostr = request.args.get('echostr')    #     return echostr    #    if request.method == 'GET':        return render_template('index.html')    else:        print('这里是POST请求')        data = request.get_data()        print(data)        xml = ET.fromstring(data)  # 实例化一个xml对象        ToUserName = xml.findtext('.//ToUserName')        FromUserName = xml.findtext('.//FromUserName')        CreateTime = xml.findtext('.//CreateTime')        Content = xml.findtext('.//Content')        print(Content)        Content = tuling(Content, ToUserName)        MsgId = xml.findtext('.//MsgId')        print(ToUserName, FromUserName, CreateTime, Content, MsgId)        res = '''
%s
''' response = make_response(res % (FromUserName, ToUserName, str(int(time.time())), Content)) response.content_type = 'application/xml' return response
app/views/wx_demo.py
  
Title

网站正在建设中......,详情敬请关注微信公众号"python小牛"

app/templates/index.html

  10)部署完成并成功启动项目后,关注公众号"python小牛",发消息测试如下:

  11)注意不要使用命令启动flask,而要使用使用进程管理工具supervisor和uWSGI将项目运行在服务器后台,具体部署步骤可参考博客:

  12)大家可关注如下公众号与智能机器人进行互动:

 

转载于:https://www.cnblogs.com/li-li/p/10331714.html

你可能感兴趣的文章
笔试题(一)—— java基础
查看>>
Redis学习笔记(三)—— 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
查看>>
Intellij IDEA使用(一)—— 安装Intellij IDEA(ideaIU-2017.2.3)并完成Intellij IDEA的简单配置
查看>>
Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
查看>>
Intellij IDEA使用(三)——在Intellij IDEA中配置Tomcat服务器
查看>>
Intellij IDEA使用(四)—— 使用Intellij IDEA创建静态的web(HTML)项目
查看>>
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>