通过SmartQQ(网页版QQ)的接口收发消息的API
from PIL import Image
import requests
import time
import json
import random
import re
import threading
import signal
#! /usr/bin/env python3
import SmartQQ
# 人类的本质就是一台复读机
def the_essence_of_human_is_a_repeater(smartqq, pack) :
if(pack['type'] == 'group_message' and pack['send_uin'] != smartqq.qq) :
qq.send_to_group(pack['from_uin'], pack['content'])
if(pack['type'] == 'message' and pack['from_uin'] != smartqq.qq) :
qq.send_to_friend(pack['from_uin'], pack['content'])
qq = SmartQQ.SmartQQ()
qq.login()
qq.start(the_essence_of_human_is_a_repeater,True)
uin
是标识QQ用户的编号,类似QQ号码,但与QQ号码的值不同
gin
是标识QQ群组的编号,类似群号码,但与群号码的值不同
gcode
是标识QQ群组的另一个编号,仅在查询群组成员列表时使用
- 无法获得自己的uin,当自己发出消息时,也会收到该消息,其中发送者uin的值为自己的QQ号码而不是uin
import SmartQQ
qq = SmartQQ.SmartQQ # 创建对象
qq.login() # 登录,会在控制台上打印出二维码
qq.start(None,True) # 启动主循环
def start(self, callback, DEBUG=False)
callback
- 回调函数,每次收到消息时调用该函数DEBUG
- 表示是否打印收到的消息进行调试,会拉取好友,群组和所有群组成员的列表
在SmartQQ的主循环中,每次收到消息都会把SmartQQ对象本身和包装好的消息数学作为参数调用回调函数
def callback(smartqq, pack)
smartqq
- SmartQQ对象pack
- 包含收到的消息的相关数据pack['type']
- 消息类型'message'表示好友消息,'group_message'表示群消息pack['from_uin']
- 消息来源的uin(好友的uin或群组的gin),自己发出消息时这个值为自己的QQ号码而不是uinpack['send_uin']
- 消息发送者(好友或群成员)的uinpack['content']
- 消息的内容pack['reply']
- 函数,向消息来回回发消息,仅需要一个参数表示回复消息的内容
登录成功后,这个值为自己的QQ号码,可以用来分辨消息是否是自己发出的
向好友发送消息
def send_to_friend(self, uin, msg)
uin
- 好友的uin
msg
- 消息内容
def send_to_group(self, gin, msg)
gin
- 群组的gin
msg
- 消息内容
获取群组列表
def group_list(self)
获取群组的名称
def group_name(self, glist, gin)
glist
- 群组列表
gin
- 群组的gin
获取群组的gcode值,仅在获取群组成员时有用
def group_code(self, glist, gin)
glist
- 群组列表
gin
- 群组的gin
获取群组的成员列表
def group_member_list(self, gcode)
gcode
- 群组的gcode
获取群组成员的名字
def group_member_name(self,mlist, uin)
mlist
- 群组成员列表
uin
- 群组成员的uin
获取好友列表
def friend_list(self)
获取好友信息
def friend_info(self, uin)
uin
- 好友的uin
获取好友的名字
def friend_name(self, uin)
uin
- 好友的uin