python qqbot实现qq聊天机器人_Python QQBot库的QQ聊天机器人

本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下

1.安装

pip install qqbot

2.主动发出消息

from qqbot import _bot as bot

# 登录QQ

bot.Login(['-q', '2816626661'])

'''

buddy 获取指定名称/备注的好友

group 获取群

'''

buddy = bot.List('buddy', 'b.K')

# 判断是佛存在这个好友

if buddy:

b = buddy[0]

# 发送消息

bot.SendTo(b, 'nihao')

3.根据事件回复消息

首先我们需要在命令行启动qq

c:\Python3.6.4\virtual\env_qq\Scripts>activate

(env_qq) c:\Python3.6.4\virtual\env_qq\Scripts>qqbot -q 2816626661

7688db608cee47050b31d0b30aac40b9

接下来编写自动回复的脚本

from qqbot import _bot as bot

def onQQMessage(bot, contact, member, content):

if content == '-hello':

bot.SendTo(contact, '你好,我是QQ机器人')

elif content == '-stop':

bot.SendTo(contact, 'QQ机器人已关闭')

bot.Stop()

接下来将其放入 C:\用户/xxxx/.qqbot-tmp/plugins/文件夹下

b8d4f80495beb4bd341610d0c9228a32

保持之前的命令行窗口运行,再重新启动一个,执行

qq plug recall

其中“recall”时刚才我们放进去的py文件名称

0717a045ee6326f3be0861b8a517ff0c

测试可行

5d502645f77f8d2fe728f12b78ac9d44

参数说明:

bot     : QQBot 对象,提供 List/SendTo/Stop/Restart 等接口、

contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性

member  : QContact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员

content : str 对象,消息内容

4.结合图灵机器人

在这里注册一个图灵机器人账号http://www.tuling123.com/

重新编写刚才的脚本

from qqbot import _bot as bot

import requests

import json

def getReplay(message):

url = 'http://openapi.tuling123.com/openapi/api/v2'

data = {

"perception": {

"inputText": {

"text": message

},

},

"userInfo": {

"apiKey": "你的APIkey",

"userId": "你的uesrID"

}

}

response = requests.post(url=url, json=data)

return response.text

def onQQMessage(bot, contact, member, content):

if content == '-hello':

bot.SendTo(contact, '你好,我是QQ机器人')

else:

response = getReplay(content)

bot.SendTo(contact, json.loads(response)['results'][0]['values']['text'])

接下来重新加载一下就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp5 mysql实现消息队列_TP5系列 | Queue消息队列

消费信息如下ThinkPHP5 Queue消息队列优点1、Queue内置了 Redis,Database,Topthink ,Sync这四种驱动,本文使用Redis驱动2、Queue消息队列适用于大并发或者返回结果 时间有点长并需要批量操作的第三方接口,可用于短信发…

mysql表里插不进去数据_Oracle数据中表值插不进去问题(转)

相信我们在进行测试的时候,有的时候会遇上数据库表的值插不进去的情况,在执行SQL语句的时候,好像卡住一样,没有反应。但是当你把SQL语句c&#xf…

java 类默认访问权限_Java类 成员 访问权限 默认

Java中的访问权限控制符有四个.作用域 当前类 同一package 子孙类 其他packagepublic √ √ √ √protected √ …

java创建临时文件夹_java创建临时文件

[java]代码库/*** 创建临时文件** param prefix* 临时文件名的前缀* param suffix* 临时文件名的后缀* param dirName* 临时文件所在的目录,如果输入null,则在用户的文档目录下创建临时文件* return 临时文件创建成功返回true,否则返回false*…

java quartz2.1_quartz 2.1学习(一)

quartz是一种开源任务调度框架,提供了强大的任务调度机制,Quartz允许开发人员灵活地定义触发器的调度时间表,并可对触发器和任务进行关联映射。废话不多说了,介绍一下编程的基本步骤:实现Job接口,编码实现需…

java http setheader_response.setHeader各种用法详解

本文主要介绍了response.setHeader各种用法。具有很好的参考价值,下面跟着小编一起来看下吧一秒刷新页面一次 response.setHeader("refresh","1");二秒跳到其他页面 response.setHeader("refresh","2;URLotherPagename");没…

datagridview取消默认选中_C# WinForm 取消DataGridView的默认选中Cell 使其不反蓝

dataGridView1.Rows[0].Selected false;默认情况下 DataGridView绑定数据后会选中首行首列为实现其没有默认不选中(即绑定后 看不到首行首列反蓝)之前将dataGridView1.Rows[0].Selected false;放在窗体的构造函数中 怎么都看似不起效果 首行首列还是反蓝后来尝试放在窗体的Lo…

java多线程的优点_【java多线程的优点】

作者:Jakob Jenkov 翻译:古圣昌 校对:欧振聪尽管面临很多挑战,在java学习中多线程有一些优点使得它一直被使用。这些优点是:资源利用率更好程序设计在某些情况下更简单程序响应更快资源利用率更好想…

java boolean是什么_java中的boolean与Boolean有什么不同

java中的boolean与Boolean有什么不同发布时间:2020-11-11 15:59:21来源:亿速云阅读:74作者:Leah这篇文章给大家介绍java中的boolean与Boolean有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴&#x…

linux cmake编译安装mysql_Linux源码安装MySQL 5.6.12 (Cmake编译)

Linux源码安装MySQL 5.6.12 (Cmake编译)1.安装make编译器(默认系统自带)下载地址:tar zxvf make-3.82.tar.gzcd make-3.82./configuremakemake install2.安装bison下载地址:tar zxvf bison-2.5.tar.gzcd bison-2.5./configuremakemake install3.安装gcc-…

啊哈java_1.桶排序——啊哈算法java实现

/*** 题目:* 5个人考试得分分别为 5分,3分,5分,2分,8分;满分是10分;* 要将 5 3 5 2 8 这个数组进行降序排序;* 即排序后变为 8 5 5 3 2;* *//*** 桶排序解法: 建一个大小为11的一维数组a,a[0]~a[10]元素都初…

java成员变量的初始化_Java成员变量初始化过程

import java.util.*;public class Main{public static void main(String[] args){Student s new Student(5);s.show();}}class Person{public Person(){System.out.println("父初始化");show();}public void show(){System.out.println("父show");}}class…

java校招面试题_java校招面试编程题及答案.docx

java校招面试编程题及答案java校招面试编程题及答案  Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。   集合框架是什么?说出一些集合框架的优点?   每种编程语言中都有…

合并两个有序数组 java_合并两个有序的数组

/*** 写在前面,题目要求的是将有序数组合并,那么有可能这所谓的有序是顺序或者逆序* 所以,应该在开始的时候判断一下* 然后,在比较的时候应该根据顺序逆序来写判断逻辑* 不过常规应该是顺序递增,然后就有了以下的代码&…

arp linux 清空_Linux怎么清理ARP缓存

1、系统初始arp环境[rootesx ~]# arp -nAddress HWtype HWaddress Flags Mask Iface192.168.1.175 ether 00:24:1D:97:B6:7F C vswif0192.168.1.120 ether 00:1F:C6:3A:DC:81 C vswif0192.168.1.51 (incomplete) vswif02、执行清除所有arp 缓存命令[rootesx ~]# arp -n|awk /^[…

ctf mysql hash传递_分享个 CTF 小工具 bruteHASH

别问,问就是为了 CTF思路源于一次三小时十二题的内部 CTF 竞赛,其中一道简单 MISC 给出明文范围(字母数字)和 MD5 开头,要求穷举出 flag——这当然不难,python 十几行代码搞定,但是运行出结果竟然用了近 20 分钟&#…

JAVA怎么实现网页退出系统_java后台实现js关闭本页面,父页面指定跳转或刷新操作...

关闭本页面,跳转到百度response.setCharacterEncoding("gbk");PrintWriter outresponse.getWriter();out.print("");out.print("");关闭本页面,刷新父页面response.setCharacterEncoding("gbk");PrintWriter ou…

huffman树java_HuffmanTree - java实现

该思想借鉴于《2019版数据结构高分笔记(c语言版)》- 第7版最近事多,有时间会把思路在这里阐述一下代码思路如下/*** add() 输入names[] weights[]* sort()排序* generateTree()生成树* preOrder() 先序遍历生成节点编码code* inOrder() 前序遍历输出编码** root* / …

java crontriggerbean_java – 使用JobStoreTX为石英聚类配置CronTriggerFactoryBean

我们正在使用Quartz 2.1.5;我们设置了以下属性:org.quartz.jobStore.classorg.quartz.impl.jdbcjobstore.JobStoreTXorg.quartz.jobStore.driverDelegateClassorg.quartz.impl.jdbcjobstore.CloudscapeDelegateorg.quartz.jobStore.useProperties trueorg.quartz.j…

利用文本文档运行java程序_java代码创建文件夹和读取文本文件txt的内容(可运行)...

java代码创建文件夹和读取文本文件txt的内容(可运行)读取txt 的内容 和 创建一个 新的文件夹package com.sec.file;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;public class ReaderFile {public static void main(String[] args) throws Ex…