自动回复_自动回复机器人 - CSDN
精华内容
参与话题
  • 写一个自动回复的聊天机器人

    千次阅读 2019-06-11 19:45:57
    要写一个自动聊天的机器人,底层必定离不开socket, TCP 是一个稳定、可靠的传输协议,常用于对数据进行准确无误的传输,socket里面有对它的封装。TCP 的概念 TCP 的英文全拼(Transmission Control Protocol)简称传输...
    要写一个自动聊天的机器人,底层必定离不开socket, TCP 是一个稳定、可靠的传输协议,常用于对数据进行准确无误的传输,socket里面有对它的封装。


    TCP 的概念

    TCP 的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议

    socket 的概念

    socket (简称 套接字) 是进程之间通信一个工具进程之间想要进行网络通信需要基于这个 socket。它负责进程之间的网络数据传输,好比数据的搬运工。不夸张的说,只要跟网络相关的应用程序或者软件都使用到了 socket

    客户端

    下面是一个开发TCP应用程序客户端的一般流程,后面见具体代码:

    1. 创建客户端套接字对象

    2. 和服务端套接字建立连接

    3. 发送数据

    4. 接收数据

    5. 关闭客户端套接字

    from socket import *
    class Cilent_Socket:
        def __init__(self):
            self.tcp_client_socket = socket(AF_INET, SOCK_STREAM) # AF_INET指ipv4地址,SOCK_STREAM指TCP协议
            self.tcp_client_socket.connect(('192.168.137.1',8989))  #连接服务端,指定服务器ip和端口def run(self):
            while True:
                # 用户输入数据
                send_data = input("我:")
                if len(send_data)==0:
                     print('已断开连接!')
                     break
                if send_data == "quit" or send_data == "exit" or send_data =='Bye'or send_data =='bye':
                    self.tcp_client_socket.send(send_data.encode("gbk"))
                    recv_data = self.tcp_client_socket.recv(4096).decode('gbk')
                    print('小美:', recv_data)
                    self.tcp_client_socket.close()
                    break
                self.tcp_client_socket.send(send_data.encode("gbk"))​            # 接收对方发送过来的数据,最大接收4096个字节
                recv_data = self.tcp_client_socket.recv(4096).decode('gbk')
                print('小美:', recv_data)
            # 关闭套接字
            self.tcp_client_socket.close()
    def main():
        client = Cilent_Socket()
        client.run()
    ​if __name__ == '__main__':
        main()复制代码

    上面代码中的__init__方法初始化了一个客户端套接字,并与服务器建立一个长连接,run()方法中用于和后台机器人发送消息和接收机器人给你返回的消息。

    服务端

    创建一个服务端程序的基本步骤是:

    1. 创建服务端端套接字对象

    2. 绑定端口号

    3. 设置监听

    4. 等待接受客户端的连接请求

    5. 接收数据

    6. 发送数据

    7. 关闭套接字

    要创建一个能自动回复的机器人,只要循环接收用户输入的信息,将其输入的关键词进行判断,可以后台预先给定它对应的关键词对应给用户回复的信息即可,或者调用已知已经做好的API接口。下面两种情况会分别进行介绍。

    1.自定义消息关键词回复

    from socket import *
    import time
    import random​
    class Server_Socket:
        def __init__(self):
            tcp_server_socket = socket(AF_INET, SOCK_STREAM)
            tcp_server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, True) #设置端口复用
            tcp_server_socket.bind(('', 8989))  # 绑定服务器端口
            tcp_server_socket.listen(128)
            self.tcp_server_socket = tcp_server_socket
            self.chat_list = ['今天天气真好,和朋友出去玩一下吧','今天你学习了吗','又不知道吃什么','蓝瘦香菇','好嗨哟','去看电影吧','去吃好吃的'] # 定义初始化消息回复列表​
        def start(self):​
            client_socket, client_addr = self.tcp_server_socket.accept()
            while True:
                # 接收对方发送过来的数据
                recv_data = client_socket.recv(4096).decode('gbk')  # 接收4096个字节if len(recv_data) == 0:
                    print("程序结束")
                    break            # 下面一串是对用户的输入逻辑进行判断
                elif recv_data =="quit" or recv_data =="exit" or recv_data =='Bye' or recv_data =='bye' or recv_data =='再见':
                    client_socket.send('再见'.encode('gbk'))
                    break
                elif "你好" in recv_data or "hello" in recv_data:
                    client_socket.send("你好".encode('gbk'))
                elif "sb" in recv_data or "SB" in recv_data or "傻" in recv_data or "二货" in recv_data :
                    client_socket.send("你才傻,你全家都傻!!!".encode('gbk'))
                elif "贱" in recv_data or "蠢" in recv_data :
                    client_socket.send("你个蠢货!".encode('gbk'))
                elif "吃" in recv_data or "hello" in recv_data:
                    client_socket.send("红烧肉、东坡肘子...".encode('gbk'))
                elif "玩" in recv_data or "hello" in recv_data:
                    client_socket.send("云南丽江不错!".encode('gbk'))
                elif "名字" in recv_data or "name" in recv_data:
                    client_socket.send("我叫小美,编号9527,哈哈...".encode('gbk'))
                elif "时间" in recv_data or "time" in recv_data:
                    client_socket.send(('现在时间是:'+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))).encode('gbk')) # 返回当前时间
                else:
                    self.chat_list.append(recv_data)  # 收集用户输入信息,丰富词汇
                    rand_idx = random.randint(0, len(self.chat_list) - 1)                # 通过随机下标获取一条信息
                    send_data = self.chat_list[rand_idx]                 # 将信息发送给客户端
                    client_socket.send(send_data.encode('gbk'))        # 关闭为这个客户端服务的套接字,只要关闭了,就意味着为不能再为这个客户端服务了,如果还需要服务,只能再次重新连接
            client_socket.close()​
    def main():
        server = Server_Socket()
        server.start()
    ​if __name__ == '__main__':
        main()复制代码

    上面的代码是聊天机器人服务端代码,可和用户进行一般的闲聊,返回当前时间等,代码逻辑不复杂,优点是可以自行定制。

    2.调用图灵机器人API实现自动回复

    图灵机器人的接口可以实现的功能有:中文聊天,情感引擎等。要使用图灵的API,首先要去它官网进行注册,然后创建机器人,获取一个APIkey,然后才能使用它的API接口。下面是网址入口:

    www.turingapi.com/

    下面对它的API文档有用的一部分进行摘抄:

    编码方式

    UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)

    接口地址

    openapi.tuling123.com/openapi/api…

    请求方式

    HTTP POST

    请求参数

    请求参数格式为 json 请求示例:

    {    "reqType":0,    "perception": {        "inputText": {            "text": "附近的酒店"        },        "inputImage": {            "url": "imageUrl"        },        "selfInfo": {            "location": {                "city": "北京",                "province": "北京",                "street": "信息路"            }        }    },    "userInfo": {        "apiKey": "",        "userId": ""    }}复制代码

    参数说明

    参数类型是否必须取值范围说明
    reqTypeintN-输入类型:0-文本(默认)、1-图片、2-音频
    perception-Y-输入信息
    userInfo-Y-用户参数

    perception

    参数类型是否必须取值范围说明
    inputText-N-文本信息
    inputImage-N-图片信息
    inputMedia-N-音频信息
    selfInfo-N-客户端属性

    注意:输入参数必须包含inputText或inputImage或inputMedia!

    inputText

    参数类型是否必须取值范围说明
    textStringY1-128字符直接输入文本

    inputImage

    参数类型是否必须取值范围说明
    urlStringY图片地址

    inputMedia

    参数类型是否必须取值范围说明
    urlStringY音频地址

    selfInfo

    参数类型是否必须取值范围说明
    location-N-地理位置信息

    location

    参数类型是否必须取值范围说明
    cityStringY-所在城市
    provinceStringN-省份
    streetStringN-街道

    userInfo

    参数类型是否必须取值范围说明
    apiKeyStringY32位机器人标识
    userIdStringY长度小于等于32位用户唯一标识
    groupIdStringN长度小于等于64位群聊唯一标识
    userIdNameStringN长度小于等于64位群内用户昵称

    输出参数

    输出示例:

      {    "intent": {        "code": 10005,        "intentName": "",        "actionName": "",        "parameters": {            "nearby_place": "酒店"        }    },    "results": [        {            "groupType": 1,            "resultType": "url",            "values": {                "url": "http://m.elong.com/hotel/0101/nlist/#indate=2016-12-10&outdate=2016-12-11&keywords=%E4%BF%A1%E6%81%AF%E8%B7%AF"            }        },        {            "groupType": 1,            "resultType": "text",            "values": {                "text": "亲,已帮你找到相关酒店信息"            }        }    ]}复制代码

    参数说明

    参数类型是否必须取值范围说明
    intent-Y-请求意图
    results-N-输出结果集

    intent

    参数类型是否包含取值范围说明
    codeintY-输出功能code
    intentNameStringN-意图名称
    actionNameStringN-意图动作名称
    parametersMapN-功能相关参数

    results

    参数类型是否包含取值范围说明
    resultTypeStringY文本(text);连接(url);音频(voice);视频(video);图片(image);图文(news)输出类型
    values-Y-输出值
    groupTypeintY-‘组’编号:0为独立输出,大于0时可能包含同组相关内容 (如:音频与文本为一组时说明内容一致)

    下面是针对文档来封装实现输入关键词来返回用户输入信息的函数代码:

    import requests
    import json
    def get_response(msg):
        api = 'http://openapi.tuling123.com/openapi/api/v2' # 接口地址
        data = {        "perception": {            "inputText": {                "text": msg            },            "inputImage": {                "url": "imageUrl"            },            "selfInfo": {                "location": {                    "city": "成都",  # 参数必须指定地点                    "province": "四川", # 参数必须                    "street": "蜀西路"                }            }        },        "userInfo": {            "apiKey": '',  # 参数必须此处填入网站申请的key            "userId": ""        }    }
        data = json.dumps(data)  # 将字典格式转化为json格式,另外loads函数是将json转化为python中的字典
        print(data)
        print('=================================================================================')
        r = requests.post(api, data=data).json()  # 将post请求的结果转为json
        print(r)
        return r['results'][0]['values']['text'] # 返回的数据
    ​mes = get_response('天气') # 输入关键词复制代码

    上面用到了python内置的request和json库,调用了几次发现有时返回的结果不太满意,不知道是不是没有买它套餐的原因。上一个版本的机器人服务端只实现了单用户,下面实现可以多用户聊天的版本:

    import socket
    import threading
    import requests
    import json​​
    # 创建web服务器的类
    class HttpWebServer:
        """初始化套接字对象"""def __init__(self, port):
            tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
            tcp_server_socket.bind(('', port))
            tcp_server_socket.listen(128)
            self.tcp_server_socket = tcp_server_socket
    ​    @staticmethod
        def get_response(msg):
            # 调用图灵机器人API
            api = 'http://openapi.tuling123.com/openapi/api/v2'
            data = {            "perception": {                "inputText": {                    "text": msg                },                "inputImage": {                    "url": "imageUrl"                },                "selfInfo": {                    "location": {                        "city": "成都",                        "province": "四川",                        "street": ""                    }                }            },            "userInfo": {                "apiKey": '',# 填入申请的key                "userId": ""            }        }
            data = json.dumps(data)  # 将字典格式转化为json格式,另外loads函数是将json转化为python中的字典
            print(data)
            # print('=================================================================================')
            r = requests.post(api, data=data).json()  # 将post请求的结果转为json
            print(r)
            return r['results'][0]['values']['text']  # 返回的数据
    ​    @staticmethod
        def client(new_socket):
            """新套接-请求-响应"""
            # 接受客户端消息
            while True:
                recv_data = (new_socket.recv(4096))
                recv_decode = recv_data.decode('utf-8')
                # 判断请求内容长度,若为0,则浏览器断开连接
                if len(recv_data) == 0:
                    print('offline')
                    new_socket.close()
                    return​
                print('帅哥:' + recv_decode)
                response = HttpWebServer.get_response(recv_decode)
                new_socket.send(response.encode('utf-8'))
    ​​    def start(self):
            """开启服务器的方法"""
            while True:
                # 循环接受请求,并创建相应的套接字
                new_socket, ip_port = self.tcp_server_socket.accept()
                # 运用多线程实现多个客户端访问,并设置主线程守护
                sub_threading = threading.Thread(target=self.client, args=(new_socket,), daemon=True)
    ​            # 子线程开启
                sub_threading.start()​​
    def main():
        """程序入口"""
        web_server = HttpWebServer(8989)
        web_server.start()
    ​if __name__ == '__main__':
        main()复制代码

    上面采用了threading实现了可多用户聊天,并使用了守护主线程,防止了在主线程接受数据阻塞引起服务器崩溃的情况。


    转载于:https://juejin.im/post/5cc316e96fb9a032196ed543

    展开全文
  • 超简单Python实现微信机器人自动回复

    万次阅读 多人点赞 2019-05-13 18:42:37
    拿使用图灵机器人设置自动回复,让机器人跟微信好友傻傻的聊天,机器人比小编还会聊天,无论是对美眉还是汉纸,上来就是爱!爱!爱!简直太辣眼睛!!!用它进行来调戏微信好友,简直6的一笔! (记住一条!千万不...

     

    下面这个小文章适合初学Python的童鞋哦~~~

    一个很好用的微信库:itchat

    拿使用图灵机器人设置自动回复,让机器人跟微信好友傻傻的聊天,机器人比小编还会聊天尴尬,无论是对美眉还是汉纸,上来就是爱!爱!爱!简直太辣眼睛!!!害羞用它进行来调戏微信好友,简直6的一笔!

    (记住一条!千万不能对女票使用,遭遇一万点伤害哭

    好啦,下面就来一起看一下如何使用吧!

    使用工具:itchat,requests

    1. 搭建python开发环境,这个就不用多说了嘛,可自行百度,需要注意一点的就是记得将python安装路径加入环境变量~

    2. 安装itchat库

      通过管理员权限运行命令提示符,直接输入以下代码:

      pip install itchat

      pip install requests

      然后会自动从网上下载资料自行安装,很简单,很傻瓜~有木有~python真的好呆萌~~~

    3. 获取一个图灵机器人API

      不要把API想的太复杂,就是一个接口啦,啥?你不明白啥是接口,唉呀~就是一个口子,你能进去,干点事情或者拿点东西再出来,就这么个东东~~(额~同学不要想多了,一不留神就开车~~吐舌头

      实现原理:当我们获取微信好友发来的消息时,我们将这个消息传给机器人的API,然后它就会根据消息做出答复,然后我们再将这个消息返回给微信好友,就OK啦!

      虽然描述的过程比较长,但是机器运行的很快,调用这个接口实现的过程真的特别~特别快~~~(哎呀~车辆转弯,请抓稳扶好~~害羞害羞

      童鞋可以从下面这个官网上注册帐号,获取图灵机器人的API:

      http://www.tuling123.com/

      注册成功后,我们就可以获得下面这个api的key啦,先拿下留用!

      (小编将key打码了,童鞋可以自行获取无码的key,咳咳~~害羞

    4.  

      代码实现

      说了这么多,下面可以列代码了,童鞋不要紧张,代码很少哟~(如果代码让你感觉不舒服,文章底部有整理好的源代码,童鞋可以拿去自行玩耍。记住,不在太嗨了哟~~~)

      第一步:导入我们需要使用的工具

      import itchat
          import requests
          import re

      第二步:定义一个获取网页的函数

      原理:上面我们已经提到,将微信好友发来的消息传送给图灵机器人API,以下我们简称为小图。而小图实际上就是在一个网页上运行的,下面上图来看一下:

      其中"text"就表示我们要跟小图说的话,这部分将被替换为微信好友发来的消息,以下定义一个抓取网页的函数:

      def getHtmlText(url):
          try:
             r = requests.get(url,timeout=30)
             r.raise_for_status()
             r.encoding = r.apparent_encoding
             return r.text
          except:
             return ""

      第三步:调用itchat封装好的装饰器

      @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])

      其中"Text"即表示为文字消息,除此之外还有其他的图片、表情等消息,都可以将此发给小图~它还很聪明的~~

      第四步:定义自动回复函数

      def text_reply(msg):
         # 判断一下发件人不是自己
           if not msg['FromUserName'] == Name["你的昵称"]:
              url = "http://www.tuling123.com/openapi/api?key=(此处填写您的key)&info="
              # 将获取的信息附在链接的尾部
              url = url + msg['Text']
              # 通过定义的网页抓取函数获取页面内容
              html = getHtmlText(url)
              # 以下两行代码用到了正则表达式,感兴趣的同学可以查一下哦
              message = re.findall(r'\"text\"\:\".*?\"',html)
              reply = eval(message[0].split(':')[1])
              return reply

      第五步:定义一个主函数来运行它

      if __name__ == '__main__':
           #  通过itchat扫码登录微信网页版
           itchat.auto_login()
           #  获取所有微信好友的信息
           friends = itchat.get_friends(update=True)[0:]
           #  使用字典存放好友昵称与用户名
           Name = {}
           #  好友昵称
           Nic = []
           #  好友用户名
           User = []
               for i in range(len(friends)):
                   Nic.append(friends[i]["NickName"])
                   User.append(friends[i]["UserName"])
               for i in range(len(friends)):
                    Name[Nic[i]] = User[i]
                    itchat.run()

      好啦,大功告成啦,有兴趣的同学可以一起玩玩看哦~下面附源代码:

      如果内容有错误,请看客指出哦,谢谢啦~~~

      另外补充一下,小编真的是一位很纯洁的小哥哦,嘿嘿嘿~~~

      # 源代码如下:
      # wechat autoreply
      import itchat
      import requests
      import re
      # 抓取网页
      def getHtmlText(url):
              try:
                      r = requests.get(url,timeout=30)
                      r.raise_for_status()
                      r.encoding = r.apparent_encoding
                      return r.text
              except:
                      return ""
      # 自动回复
      # 封装好的装饰器,当接收到的消息是Text,即文字消息
      @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
      def text_reply(msg):
          # 当消息不是由自己发出的时候
          if not msg['FromUserName'] == Name["Jestiao"]:
              # 回复给好友
              url = "http://www.tuling123.com/openapi/api?key=您的小图key&info="
              url = url + msg['Text']
              html = getHtmlText(url)
              message = re.findall(r'\"text\"\:\".*?\"',html)
              reply = eval(message[0].split(':')[1])
              return reply
      
      if __name__ == '__main__':
          itchat.auto_login()
      
          # 获取自己的UserName
          friends = itchat.get_friends(update=True)[0:]
          Name = {}
          Nic = []
          User = []
          for i in range(len(friends)):
                  Nic.append(friends[i]["NickName"])
                  User.append(friends[i]["UserName"])
          for i in range(len(friends)):
                  Name[Nic[i]] = User[i]
          itchat.run()
      

    猜您喜欢:

    超级便捷精巧绿色的屏幕分享小软件IntelexEMC 

    超简单一键提取QQ群成员

    一键拼接微信好友头像/玩炫朋友圈

     

    展开全文
  • 30行代码实现微信自动回复机器人

    千次阅读 2018-12-02 18:25:53
    本文转自:本文转自:...amp;mid=2653558126&idx=1&sn=b1a87e62fc2ae0a3b2e775dadf263ccc&chksm=806e3bd3b719b2c5a83684476a5b33f341c72b4b4399153ee3a2466a83c4...
    
    本文转自:本文转自:https://mp.weixin.qq.com/s?__biz=MzAxMjUyNDQ5OA==&mid=2653558126&idx=1&sn=b1a87e62fc2ae0a3b2e775dadf263ccc&chksm=806e3bd3b719b2c5a83684476a5b33f341c72b4b4399153ee3a2466a83c43d3b1b0a638ec937&mpshare=1&scene=1&srcid=1202ZbvHNyDCMttLhC9Nfu2y#rd
    
    

    一、写在前面

    很多朋友对itchat非常感兴趣,今天下午又学到了itchat另一种有趣的玩法—微信自动回复机器人。

    程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器人小笼包跟自己微信好友聊天的截图。
    在这里插入图片描述
    再给大家看看两个机器人的对话
    在这里插入图片描述

    二、程序介绍

    本程序通过itchat获取微信的相关消息,将微信消息传输到机器人接口(本程序使用的是图灵),获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。

    三、具体实现

    安装
    itchat的安装可以通过下面这行代码

    pip install itchat
    

    登录
    itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码。

    1# 扫描二维码登陆微信,实际上就是通过网页版微信登陆
    itchat.auto_login()
    

    如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态

    itchat.auto_login(hotReload=True)
    

    微信信息的发送
    微信可以发送各类消息,文本、图片、文件等,下面是具体的方法的介绍。

    itchat.send('Message Content', 'toUserName')
    

    该发送消息的函数需要两个参数,消息的内容与接受者的UserName,即标识符。
    用下面的代码举一个小栗子,实现向文件助手发送信息。

    import itchat
    
    itchat.auto_login(hotReload=True)
    itchat.send(u'测试消息发送', 'filehelper')   
    

    微信消息的获取
    itchat 将根据接受到的消息类型寻找对应的已注册的方法。如果一个消息类型没有对应的注册方法, 该消息将会被舍弃。在运行过程中也可以动态注册方法, 注册方式与结果不变。

    注册方法
    不带具体对象注册, 将注册为普通消息的回复方法.

    import itchat
        from itchat.content import *
        @itchat.msg_register(TEXT)   #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
        def simple_reply(msg):
            #这个是向发送者发送消息
            itchat.send_msg('已经收到了文本消息,消息内容为%s'%msg['Text'],toUserName=msg['FromUserName'])
            return "T reveived: %s" % msg["Text"]     #返回的给对方的消息,msg["Text"]表示消息的内容
    

    带对象参数注册, 对应消息对象将调用该方法,其中isFriendChat表示好友之间,isGroupChat表示群聊,isMapChat表示公众号。

    import itchat
    from itchat.content import *
    
    @itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
    def text_reply(msg):
        msg.user.send("%s : %s" % (mst.type, msg.text))
    

    消息类型
    向注册方法传入的 msg 包含微信返回的字典的所有内容.itchat 增加 Text, Type(也就是参数) 键值, 方便操作。

    itcaht.content 中包含所有的消息类型参数。例如图片、语音、名片、分享等,也对应不同的注册参数:

    1. 图片对应:itchat.content.PICTURE

    2. 语音对应:itchat.content.RECORDING

    3. 名片对应:itchat.content.CARD

    其余的可以参考官方API
    https://pypi.org/project/itchat/

    import itchat
    
    @itchat.msg_register(itchat.content.TEXT)
    def print_content(msg):
        print(msg['Text'])
    
    itchat.auto_login()
    itchat.run()
    

    通过运行上面的代码,实现基础的文本信息的接收。

    实现与图灵机器人的交互
    实现机器人有很多种方法,最简单的就是使用他人提供的接口。这里以图灵机器人为例,演示这一功能。图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包(包含你对他说的话)图灵的服务器会以一定的规则给你返回数据包(包含他回复你的话)

    你需要一个Tuling Key来告诉图灵服务器你有权和他对话。

    8edce3ce905a4c1dbb965e6b35c3834d
    eb720a8970964f3f855d863d24406576
    1107d5601866433dba9599fac1bc0083
    71f28bf79c820df10d39b4074345ef8c
    
    接下来需配置图灵机器人
    {
        'key'    : 'TULING_KEY',
        'info'   : 'YOUR_MSG',
        'userid' : 'USERID',
    }
    

    下面使用图灵机器人向好友发送了hello

    #coding=utf8
    import requests
    
    apiUrl = 'http://www.tuling123.com/openapi/api'
    data = {
        'key'    : '8edce3ce905a4c1dbb965e6b35c3834d', # 如果这个Tuling Key不能用,那就换一个
        'info'   : 'hello', # 这是我们发出去的消息
        'userid' : 'wechat-robot', # 这里你想改什么都可以
    }
    # 我们通过如下命令发送一个post请求
    r = requests.post(apiUrl, data=data).json()
    
    # 让我们打印一下返回的值,看一下我们拿到了什么
    print(r)
    

    完整代码:

    import requests
    import itchat
    
    KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
    
    def get_response(msg):
        # 这里实现与图灵机器人的交互
        # 构造了要发送给服务器的数据
        apiUrl = 'http://www.tuling123.com/openapi/api'
        data = {
            'key' : KEY,
          'info' : msg,
          'userid' : 'wechat-robot',
        }
        try:
            r = requests.post(apiUrl, data=data).json()
            # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
            return r.get('text')
        # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
        # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
        except:
            # 将会返回一个None
            return
    
    # 这里实现微信消息的获取
    @itchat.msg_register(itchat.content.TEXT)
    def tuling_reply(msg):
        # 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
        defaultReply = 'I received: ' + msg['Text']
        # 如果图灵Key出现问题,那么reply将会是None
        reply = get_response(msg['Text'])
        # a or b的意思是,如果a有内容,那么返回a,否则返回b
        # 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
        return reply or defaultReply
    
    # 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
    itchat.auto_login(hotReload=True)
    itchat.run()
    

    itchat不仅仅能够实现自动回复,还有其他的相关功能比如群发助手,好友单删检测,获取微信好友信息等功能,后续会慢慢去体验各种玩法。

    小提示:不要频繁操作,否则会禁止登录web微信。

    更多案例请关注“思享会Club”公众号或者关注思享会博客:http://gkhelp.cn/
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181202180648906.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzMxMTg0,size_16,color_FFFFFF,t_70)
    展开全文
  • 微信自动回复机器人使用手册

    千次阅读 2018-09-07 14:50:25
    微信也能自动回复啦?没错,微信自动回复机器人正式上线了!今天勤劳的小编就整理了一份微信自动回复机器人的使用手册,希望对小伙伴们有所帮助。 工具 米云微信自动回复机器人 下载/安装 登录...

    微信也能自动回复啦?没错,微信自动回复机器人正式上线了!今天勤劳的小编就整理了一份微信自动回复机器人的使用手册,希望对小伙伴们有所帮助。

    工具

    米云微信自动回复机器人

    下载/安装

    登录www.miyunchuanmei.com网站,下载安装Microsoft .Net Framework 4.5,,下载安装米云微信自动回复机器人。

    登陆微信

    输入账号和密码,点击“登陆”按钮,即可完成登陆系统。点击左侧全部聊天下方“+”按钮,弹出二维码,打开手机微信“扫一扫”功能,扫描二维码,手机端点击“登陆微信”即可完成登陆。

     

    使用/操作

    操作主界面如下:

    1.左边栏选择全部聊天,即可看到已经登录的微信所有聊天好友,省去多账号收发消息的繁琐点击,就像只使用一个微信号一样方便。

    在全部聊天中,点击“未处理”,即可查看所有未读消息。使用“未处理”功能,不会遗漏任何一个对话。

    2.点击右上角【机器人回复】进入设置页面,选择分类管理可对话术进行分类,方便管理;点击新建知识点即可进入新建知识点窗口。

    3. 想要建立完善的机器人回复,需要不断填充话术,完善机器人回复的数据库;同一ID下,机器人话术是可以共享的。

    4.右键点击微信头像,选择【托管机器人】,即可将微信号进行托管;取消托管也是同样操作。被托管的微信号会在微信头像右上角有一个机器人标注,方便区分。

    被托管账号会根据关键词,对聊天内容使用制定的话术进行回复;找不到答案的对话会在全部聊天中的未处理中显示,方便客服手动回复。

     

    5.可根据需要将知识点从excel中导入到系统中,或将知识点导出至excel文档中,方便知识点互通和记录。

    6.托管机器人后,若出现客户问题回答不上,系统会将问题内容汇总至【问题学习】中,在其中可以看到问题提问次数和该问题是否被添加至知识点状态。勾选问题,可将问题忽略或添加至知识库中。下次再遇到同样问题,机器人即可做出准确回答。

     

    功能优势

    1. 微信号统一管理:可以将所有微信号整合到一个操作后台,方便高效。

    2. 记录长久保存:聊天记录云端保存,同时帮助监管聊天信息里是否有敏感词、索要红包等情况。

    3. 好友标签管理:可以为好友添加标签和详细备注,进行分组管理。

    4. 7*24小时在线:全天在线,随时随地进行微信消息回复。

    以上就是微信自动回复机器人功能的使用手册,小伙伴们学会了吗?

    展开全文
  • RebateBot 返利机器人 项目地址 项目描述 关键词: 返利 微信 阿里妈妈 机器人 跨平台 ...利用闲置微信和极小的电脑性能开启24小时无人轮值返利机器人 购物只需要发送链接给机器人,机器人能马上给你回复优惠价...
  • 自动回复机器人

    千次阅读 2019-06-13 10:09:10
    直接使用这个接口即可。 public class HttpUtils { public static final String ROBOT_URL = "http://openapi.tuling123.com/openapi/api/v2"; public static final String QINGYUN_URL= ...
  • 自动回复

    2015-07-31 13:46:38
    欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 ...
  • 论坛自动回复

    千次阅读 2015-08-10 10:42:13
    论坛自动回复,打算找个软件用一下的,结果没有合适的,于是只好自己上阵,下面的是一个开源js,实现了自动回复隐藏贴, http://userscripts-mirror.org/scripts/review/152745 根据目标论坛适配,将 var input_...
  • Python用图灵机器人实现微信自动回复 利用图灵机器人的话首先要到图灵机器人官网注册一个账号 登陆账号后点击头像进行设置,设置完成后点击左边菜单栏里的首页,在里面的“机器人看板”模块可以看到APIkey,这个是...
  • Python微信自动回复脚本

    千次阅读 热门讨论 2019-01-25 14:58:05
    一、在命令提示符中输入pip install itchat,安装微信接口的第三方模块 二、编译并运行源代码  #coding=utf8 import itchat # 当接收到的消息是Text,即文字消息 ...@itchat.msg_register('Text') ...
  • Android——微信自动回复实现

    千次阅读 多人点赞 2019-09-27 12:41:53
    需要实现-抓取微信自动回复消息的功能点。 一.首先打开DDMS,使用按钮。 在微信中回复一个消息 点击Stop Method Profiling。 二.查看生成的报表,观察到如下两个方法 其中1应该是发送消息的接口方法。2应该是...
  • 微信公众号开发之自动回复

    千次阅读 2019-07-29 17:58:30
    自动回复这块是比较麻烦的 一、后端回复管理 后端没什么说的,根据微信公众平台的自动回复建表,添加数据即可 需要强调的是 规则、关键词、回复内容需要建三个表 规则表中关键词和回复内容拼接id成字符串 存入表...
  • 微信自动回复功能怎么实现?

    千次阅读 2018-08-09 10:21:22
    能不能实现微信自动回复呢? 下载安装微信管理系统 首先下载Microsoft .Net Framework4.5,安装配置好环境后,下载米云客服微信管理系统,进行安装,然后使用米云账号进行登录。在聊天界面,点击左侧...
  • 微信自动回复机器人

    千次阅读 2019-07-04 22:04:56
    首发于慕课网手记 通过itchat获取微信的相关消息,将微信消息传输到青云客机器人接口,获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。 因为图灵机器人现在需要...
  • 用Python做个微信自动回复机器人

    千次阅读 多人点赞 2018-08-13 21:26:37
    微信已经成为我们生活不可或缺的一部分,每天有380亿条消息从微信上发出,其中6亿条是语音消息,有350万个活跃的公众账号,并存在着8亿活跃粉丝。微信是一个庞大的生态...微信自上线以来,一直没有自动回复的功能...
  • 最近找了个钱少事少离家近兼混吃等死的工作…… 好吧就是跑去某个销量还不错的天猫...也就是我们常说的自动回复,比如我们进店经常能看到的欢迎语就是其中的一种 折腾了半个月,现在也勉强掌握了个大概 所以接...
  • Fiddler自动回复器伪造回复

    千次阅读 2019-05-24 14:06:56
    使用Fiddler自定义响应 1.首先使用打开Fiddler...2.打开自动回复,设置好地址,在响应的下拉选项中选择 [找到一个文件…(find a file…)],定位到第一部保存的文件 3.设置好后即可对指定请求返回自定义响应内容 ...
  • 微信自动回复群聊

    千次阅读 2019-04-05 22:27:42
    在之前的文章中写了一个微信自动回复的脚本 https://blog.csdn.net/qq_34525938/article/details/88963303 但是发现在群聊中没有办法自动回复,现在想要的效果就是如果有人在群里面@我的话,我就自动回复,如果...
  • Java微信开发-自动回复-

    千次阅读 2015-10-10 15:31:29
    既然我们选用了开发者中心,那微信公众平台的自动回复就不得行了,那就自己开发吧。 这就要在服务器配置的URL里面处理了。 一、自动回复处理代码 @RequestMapping(value="/api",method=RequestMethod.POST) ...
  • 微信小程序实现客服默认自动回复功能

    万次阅读 热门讨论 2018-03-22 13:42:19
    微信小程序实现客服默认自动回复功能 程序可通过以下两种方式下发客服消息:1、调用发送客服消息接口;2、使用公众平台网页版客服工具;这里主要讲第1种的做法。 1、小程序管理员的后台配置 登录小程序,在...
1 2 3 4 5 ... 20
收藏数 178,959
精华内容 71,583
关键字:

自动回复