• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    教你使用python搭建一个QQ机器人实现叫起床服务

    前言

    上一篇文章介绍了怎么配置机器人框架,并且实现了一些简单的功能。

    (发送私聊或者群聊信息、接收上报的事件、简单的自动回复等等)

    这次为了让QQ机器人更加智能,调用了一些实用的接口。

    通过自己搭建的机器人实现定时叫女朋友起床、和女朋友聊天等功能。

    如上图所示,我的机器人每天都会准时叫女朋友起床;并且在我忙的时候然而女朋友无聊的时候可以陪她聊一会天。

    具体实现

    以下实现的功能都需要机器人已经配置完成,并且已经写好了我上一篇文章的一些函数。

    上一篇文章地址—>>>QQ机器人制作教程,超详细!

    1、定时发送信息

    要实现这个功能是不难的,只需要引入时间这个变量就可以了,具体代码如下(QQ号、里面的时间和msg自己改):

    import datetime
    import time
    while True:
    	qq=女朋友qq号
        now = datetime.datetime.now()
        if(now.hour==0 and now.minute==0):
            send_msg({'msg_type': 'private', 'number': qq, 'msg': '晚安!'})
            send_msg({'msg_type': 'private', 'number': qq, 'msg':'[CQ:poke,qq={}]'.format(qq)})
            time.sleep(60)
            continue
        if (now.hour == 9 and now.minute == 30):
            send_msg({'msg_type': 'private', 'number': qq, 'msg': '起床了'})
            send_msg({'msg_type': 'private', 'number': qq, 'msg': '[CQ:poke,qq={}]'.format(qq)})
            time.sleep(60)
            continue
        else:
        	continue
    

    上述代码实现的是:每天零点给女朋友发晚安并戳她一下;每天早上九点半发起床了并戳她一下。

    这些你自己可以改进,可以发表情包,甚至可以把代码里的'time.sleep(60)'删除,

    那样就会在一分钟之内连续发信息轰炸她,强烈建议使用!

    2、让机器人陪女朋友聊天

    要实现这个功能需要借助API接口了,目前我找到的实用智能回复API接口地址:http://api.qingyunke.com/

    这个接口不仅仅可以聊天,还有一些实用的功能,如下图所示:

    要实现以上功能都需要获取女朋友给你发的信息,这个在上一篇文章已经写了,

    获取到后直接调用接口返回结果,再发送给她即可。

    下面直接上代码:

    from receive import rev_msg
    import requests
    import json
    import urllib.request
    from urllib.parse import quote
    import string
    while True:
        try:
            rev = rev_msg()
            print(rev)
            if rev == None:
                continue
        except:
            continue
        if rev["post_type"] == "message":
            if rev["message_type"] == "private": #私聊
                message=rev['raw_message']
                if 'face' in message:
                    qq = rev['sender']['user_id']
                    img = rev['raw_message']
                    send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
                elif 'image' in message:
                    qq = rev['sender']['user_id']
                    img=rev['raw_message']
                    send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
                elif '戳一戳' in message:
                    qq = rev['sender']['user_id']
                    send_msg({'msg_type': 'private', 'number': qq, 'msg': '别戳了'})
                else:
                    url = 'http://api.qingyunke.com/api.php?key=freeappid=0msg=' + message
                    s = quote(url, safe=string.printable)
                    try:
                        with urllib.request.urlopen(s) as response:
                            html = response.read()
                            # 将获取到的响应内容进行解码,并将json字符串内容转换为python字典格式
                            # 通过下标取到机器人回复的内容
                            qq = rev['sender']['user_id']
                            # print(eval(html.decode("utf-8"))["content"])
                            send_msg({'msg_type': 'private', 'number': qq,
                                      'msg': eval(html.decode("utf-8"))["content"].replace('{br}', '\n')})
                            # print(eval(html.decode("utf-8"))["content"])
                    except:
                        qq = rev['sender']['user_id']
                        send_msg({'msg_type': 'private', 'number': qq, 'msg': '重新连接中。。。'})
        else:  # rev["post_type"]=="meta_event":
            continue
    

    上述代码中,先判断"post_type"的类型,如果为message表明有人给机器人发消息了;

    再看"message_type",如果为private表明这是私聊信息,当然如果为group表明这是群聊信息;

    然后我们获取信息message=rev[‘raw_message'],拿到这个信息之后就可以设置关键词进行自己回复了。

    我在代码中设置的'face' in message'image' in message是为了获取表情和图片,

    对方发送什么就返回什么,因为那个智能回复接口识别不了表情和图片。

    3、调用一些有趣的接口

    在聚合数据找了一些好玩的接口,有很多都是免费的。

    本文以星座运势为例子教大家怎么实现。

    申请使用一个api会给你请求key,需要先实名认证。

    申请一个接口后点击测试,输入两个请求参数即可返回结果。

    python代码如下(需要使用自己的api请求key):

    def horoscope(constellation):
        # 请求地址
        url = "http://web.juhe.cn/constellation/getAll?" + 'consName={}type=todaykey=自己的请求key'.format(constellation)
        # 发送get请求
        r = requests.get(url)
        # 获取返回的json数据
        result = r.json()['summary']
        print(result)
        return result
    horoscope('摩羯座')
    

    再把它整合到机器人程序里面:

    if '星座运势' in message:
                    try:
                        constellation = message.split(' ')[1]
                        text = horoscope(constellation)
                        qq = rev['sender']['user_id']
                        send_msg({'msg_type': 'private', 'number': qq, 'msg': text})
                    except:
                        qq = rev['sender']['user_id']
                        send_msg({'msg_type': 'private', 'number': qq, 'msg': '请在星座前面加上空格。'})
    

    健康填报小助手开发中。。。

    前几天一个辅导员朋友看了我的文章问我能不能制作一个qq机器人,关于健康填报小助手的。

    他每天都要提醒学生健康填报,而且每次查看谁没填报的时候都需要登录网站统计数据才能获得,

    这就难免会忘记或者说每天做这些事情太烦人了,于是想让我给他开发一个QQ机器人。

    简单交流了一下,了解了这个QQ机器人需要有的功能:

    以上就是教你使用python搭建一个QQ机器人实现叫起床服务的详细内容,更多关于python搭建QQ机器人的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Python qqbot 实现qq机器人的示例代码
    • 使用Python的Tornado框架实现一个简单的WebQQ机器人
    • 不到20行代码用Python做一个智能聊天机器人
    • python制作机器人的实现方法
    • Python实现聊天机器人的示例代码
    • 采用python实现简单QQ单用户机器人的方法
    上一篇:python使用matplotlib绘制图片时x轴的刻度处理
    下一篇:Python 函数简单易理解版
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    教你使用python搭建一个QQ机器人实现叫起床服务 教你,使用,python,搭建,一个,