美文网首页
Python 实现图灵微信机器人

Python 实现图灵微信机器人

作者: butterflyer | 来源:发表于2019-01-18 12:30 被阅读21次

    最近看了下python,总感觉如果一直搞前端的东西,缺乏新鲜感。
    首先撸了一遍python的基本语法
    其实就可以开搞了。
    这里用的是我用的是python3 ,mac自带python2.7,但是这两个是可以共存的~,千万不要删了mac自带的python,因为里面好多东西都是基于这个版本来实现的。

    言归正传,要实现微信机器人首先肯定是基于python,这就需要itchat 这个库
    wiki在这里https://itchat.readthedocs.io/zh/latest/intro/handler/

    pip3 install itchat
    

    还是相当好玩的。

    先导入需要用到的库

    from itchat.content import *
    import requests
    import json
    import itchat
    

    然后调用图灵的api,根据消息调用接口返回数据

    def tuling(info):
      appkey = "ffeeed42668044478b82261c341268ab"
      url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
      req = requests.get(url)
      content = req.text
      data = json.loads(content)
      answer = data['text']
      return answer
    

    对于单个用户的机器人回复,需要用itchat.msg_regist注册回调方法,当有人跟你说话的时候,就会回调这个方法,自动回复。

    @itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
    def text_reply(msg):
      itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])
    

    然后是针对群消息自动回复的

    def group_id(name):
      df = itchat.search_chatrooms(name=name)
      return df[0]['UserName']
    
    @itchat.msg_register(TEXT, isGroupChat=True)
    def group_text_reply(msg):
      # 当然如果只想针对@你的人才回复,可以设置if msg['isAt']: 
      item = group_id(u'社会主义的接盘人') # 根据自己的需求设置
      print(item)
      print(msg)
      if msg['FromUserName'] == item:
        
        itchat.send(u'%s' % tuling(msg['Text']), item)
    

    最后调用启动代码,来吊起二维码登录就可以实现微信机器人了。

    itchat.auto_login(hotReload=True)
    itchat.run()
    

    脚本地址

    一把梭过来,在终端执行 python3 groupChat.py

    相关文章

      网友评论

          本文标题:Python 实现图灵微信机器人

          本文链接:https://www.haomeiwen.com/subject/erfndqtx.html