本教程为上一教程延续,没有看的请先跳转(csdnhttps://blog.csdn.net/A11223446/article/details/137214498
wordpress https://daimile.lovestoblog.com/word/qq_bot%e6%95%99%e7%a8%8b%ef%bc%88%e4%b8%80%ef%bc%89/
本期需要用到的工具(本人使用Python 3.10.3)
python下载:
官网:https://www.python.org/downloads/
蓝奏云(包含3.10.3 64位和32位版):https://wwk.lanzouq.com/b00g24kbbg
密码:h199
2.开始实践之处理消息
python环境配置就不用我教了吧
1.安装requests,flask,gevent库
win+r打开cmd,输入pip install requests
,安装requests库,再输入pip install flask
,再再输入pip install gevent
(如果报错,自己去找解决方法,网上一大堆bushi)
2.开始编程
打开ide或者编辑器如vs,新建一个python项目(太简单了不放图片)
新建python文件
输入以下代码:
from flask import Flask, request
from gevent import pywsgi
app = Flask(__name__)
headers = {
'Content-Type': 'application/json'
}
@app.route('/', methods=["POST"])
def post_data():
if request.get_json().get('message_type') == 'private': # 如果是私聊信息
QQ_name = request.get_json().get('sender').get('nickname') # 发送者昵称
QQ_id = request.get_json().get('sender').get('user_id') # 发送者账号
Xingxi_text = request.get_json().get('raw_message') # 信息内容
print("发的人的名字和id:"+str(QQ_id)+str(QQ_name)+"发的内容:"+Xingxi_text)
if request.get_json().get('message_type') == 'group': # 如果是群聊信息状态码
# 获取需要的消息
Qun_id = request.get_json().get('group_id') # 那个群发的
QQ_name = request.get_json().get('sender').get('nickname') # 发送者人的昵称叫啥
QQ_id = request.get_json().get('sender').get('user_id') # 发送者的QQ号
Xingxi_text = request.get_json().get('raw_message') # 发的什么东西
print("发的群:"+str(Qun_id)+'\n'+"发的人的名字和id:"+str(QQ_id)+str(QQ_name)+"发的内容:"+Xingxi_text)
return 'OK'
if __name__ == '__main__':
server = pywsgi.WSGIServer(('127.0.0.1', 8080), app) #8080为你yml文件设置的端口号
server.serve_forever()
像是这样:
我们来逐段解析
from flask import Flask, request
from gevent import pywsgi
导入flask库和gevent(特别说明,gevent库是为了方便在不调试模式运行)
app = Flask(name)
引用flask创建一个应用
headers = {
'Content-Type': 'application/json'
}
设置访问头
@app.route('/', methods=["POST"])
启动应用
接下来讲解def post_data():内的代码
if request.get_json().get('message_type') == 'private': # 如果是私聊信息
if request.get_json().get('message_type') == 'group': # 如果是群聊信息
这两个判断检测是是群聊还是私聊
Qun_id = request.get_json().get('group_id') # 那个群发的
QQ_name = request.get_json().get('sender').get('nickname') # 发送者人昵称
QQ_id = request.get_json().get('sender').get('user_id') # 发送者的QQ号
Xingxi_text = request.get_json().get('raw_message') # 发的什么东西
传回服务器接收到的消息(这个是群聊的,私聊就是少了个群id其他都一样)
print("发的人的名字和id:"+str(QQ_id)+str(QQ_name)+"发的内容:"+Xingxi_text)
print("发的群:"+str(Qun_id)+'\n'+"发的人的名字和id:"+str(QQ_id)+str(QQ_name)+"发的内容:"+Xingxi_text)
处理完信息后打印处理后的信息
return 'OK'
这个是必要的,没有他可能会运行一次发两次消息(后面就会用)
if name == 'main':
server = pywsgi.WSGIServer(('127.0.0.1', 8080), app)
server.serve_forever()
返回消息到本地服务器,注意那个8080是你在yml里设置的端口号
就是这个:
- url: http://127.0.0.1:8080/ # 地址
secret: '' # 密钥
地址那行的8080
效果像是这样:
1-1.上一篇补充
如果安装上一篇yml配置启动会发现有bug,就是疯狂跳报错,那是因为作者的服务器崩掉了,要将yml里的这个改为-1:
heartbeat:
# 心跳频率, 单位秒
# -1 为关闭心跳
interval: -1
好了本篇文章就愉快的结束了
感谢观看
(如需转载请联系作者)