python实现微信小程序自动回复

本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能,必须在自己的微信中添加微信号xiaoice-ms(微软的微信机器人)才能实现,直接复制代码运行之后扫一扫二维码即可,经过测试,该程序能够保持几小时的时间。

实现原理,将别人发送给你的消息转发给AI小冰,然后再将AI的回复转回给那个人。

群消息也是如此,此外还添加了新年问候语,是否与他人进行AI聊天等功能。不过只能实现文本消息以及微信自带表情的转发,不能转发表情、语音等。

# -*-coding:utf-8-*-
import itchat
import itchat.content as itcontent

# 登录网页微信,hotReload=True 能让登录时间加长
itchat.auto_login(hotReload=True)

# 记录公众号机器人小冰的UserName
mps = itchat.search_mps(name='小冰')
AI = mps[0]['UserName']
# print(AI)

# 记录自己的UserName,不然发送消息会发两遍
username = itchat.get_friends()
user = username[0]['UserName']
# print(username)

# 记录好友列表里好友的 UserName
friendsname = [friend['UserName'] for friend in username if friend['UserName'] != user]
# print(friendsname)

groupname = itchat.get_chatrooms()
groups = [group['UserName'] for group in groupname]

# 这个说来话长~~,有兴趣的可以去上网查查
@itchat.msg_register(itcontent.TEXT, isFriendChat=True, isMpChat=True, isGroupChat=True)
def simple_reply(msg, FriendList=[]):
  Fromuser = msg['FromUserName']

  # 如果是AI而且列表不为空,就将AI发给自己的消息转发给发送消息者
  if msg['FromUserName'] == AI and FriendList:
    # print(msg['FromUserName'])
    itchat.send(msg['Text'], toUserName=FriendList[-1])

  elif Fromuser in friendsname:
    if '新年' in msg['Text']:
      return '新年快乐,祝您身体健康,万事胜意。'

    # 记录发送消息者入FriendList中
    elif Fromuser not in FriendList and msg['Text'] == '小小冰真漂亮':
      FriendList.append(Fromuser)
      return '通信建立成功'

    # 第一次发送消息过来,回复以下内容
    elif Fromuser in FriendList:
      if msg['Text'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
        FriendList.remove(Fromuser)
        return '再见,和您聊天十分开心,希望您今天过得愉快!'
      else:
        FriendList.append(Fromuser)
        itchat.send(msg['Text'], toUserName=AI)

    else:
      text = '''Mr.D先生现在不在,我是助手AI,有要事请拨打号码:xxxxxxxxxxx。如果想和我聊天,那就大声地说"小小冰真漂亮
            (回复‘小小冰再见/小小冰晚安/小小冰下次聊'可结束此次聊天。)"'''
      return text

  elif Fromuser in groups:
    if msg.isAt:
      if '新年' in msg['Content']:
        return '新年快乐,祝您身体健康,万事胜意。'
      elif Fromuser not in FriendList and msg['Content'] == '小小冰真漂亮':
        FriendList.append(Fromuser)
        return '通信建立成功'
      elif Fromuser in FriendList:
        if msg['Content'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
          FriendList.remove(Fromuser)
          return '再见,和您聊天十分开心,希望您今天过得愉快!'
        else:
          FriendList.append(Fromuser)
          itchat.send(msg['Content'], toUserName=AI)
      else:
        text = '''Mr.D先生现在不在,我是助手AI,有要事请拨打号码:xxxxxxxxxxx。如果想和我聊天,那就大声地说"小小冰真漂亮
            (回复‘小小冰再见/小小冰晚安/小小冰下次聊'可结束此次聊天。)"'''
        return text

    elif msg['Text'] == '小小冰真漂亮':
      FriendList.append(Fromuser)
      return '通信建立成功'

    elif Fromuser in FriendList:
      if msg['Text'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
        FriendList.clear()
        return '再见,和您聊天十分开心,希望您今天过得愉快!'
      elif '新年' in msg['Text']:
        return '新年快乐,祝您身体健康,万事胜意。'
      else:
        FriendList.append(Fromuser)
        itchat.send(msg['Text'], toUserName=AI)

        # 如果是自己发送消息,则清空列表
  elif Fromuser == user:
    FriendList.clear()

  # 其他公众号信息,就通知一声给微信文件助手
  else:
    itchat.send('公众号信息', toUserName='filehelper')

@itchat.msg_register([itcontent.PICTURE, itcontent.RECORDING, itcontent.VIDEO, itcontent.MAP], isFriendChat=True,
           isGroupChat=True, isMpChat=True)
def return_text(msg):
  text = '我不具备识别语音与图片等功能,请说普通话。'
  return text

itchat.run()

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

(0)

相关推荐

  • python微信公众号之关键词自动回复

    最近忙国赛的一个项目,我得做一个微信公众号.功能就是调数据并回复给用户,需要用户发送给公众号一个关键词,通过关键词自动回复消息. 这时就是查询微信公众平台文档了,地址如下: 文档 按照它的入门指南,我基本上了解了用户给公众号发送消息的一个机制,并且一旦给公众号发送消息,在开发者后台,会收到公众平台发送的一个xml,所以通过编写Python脚本进行xml的解析与自动发送功能. 如果用户给公众号发送一段text消息,比如"hello",那么后台就会收到一个xml为: <xml>

  • 10分钟教你用Python实现微信自动回复功能

     01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把接收到的消息统一发送到文件助手里面,方便统一查看. 效果如下: 02 环境准备 Python版本:3.6.0 系统平台:Windows 10 X64 IDE:pycharm 相关模块: time模块: itchat模块: 以及一些Python自带的模块. 03 实现原理 其实原理很简单,主要是利用itcha

  • python实现人人自动回复、抢沙发功能

    最近人人上看到有好友总是使用软件抢沙发,便决定用Python也写一个玩玩 一.状态回复表单POST 同样使用chrome开发者工具抓包 红色选择选中部分为必须提交的部分 提交表单的内容 postdata = { 'c': content, #1 你要评论的内容 'owner': owner, #2 该状态的所有者ID 'source': source, #3 该状态的ID 't': 3, #4 这条不用修改 'requestToken': xxx, #5 上图选中部分 '_rtk': 'xxx'

  • python实现微信自动回复功能

    本文实例为大家分享了python实现微信自动回复的具体代码,供大家参考,具体内容如下 新年到了,不想让一早上给你发送祝福的人心里一阵寒风,可以秒回复对方的话,试试下面的python程序可以帮你解决这个问题. 预装: python2.x或3.x pycharm pip install itchat pillow 桌面新建一个文件我们叫做newYear.py文件 打开它,用刚刚下载好的pyCharm软件 将下面的代码复制过去: # encoding = utf8 import itchat,time

  • python实现微信机器人: 登录微信、消息接收、自动回复功能

    安装wxpy pip install -U wxpy 登录微信 # 导入模块 from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() 运行以上代码,会生成一个二维码,通过图片扫描二维码即可登录微信. 如果是在服务器上运行代码,无法显示图片的时候, 可以选择通过终端显示二维码图片, 只需要将代码改成: from wxpy import * bot = Bot(console_qr=True) 运行的效果如下: 当然,为了安全,这个二维码做了模糊处理 如果你认为每次

  • python itchat实现微信自动回复的示例代码

    今天在实验楼发现一个特别好玩的,Python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈!! 代码如下: #coding=utf8 import requests import itchat KEY = '8edce3ce905a4c1dbb965e6b35c3834d' def get_response(msg): apiUrl = 'http://www.tuling123.com/openapi/api' data

  • 利用python微信库itchat实现微信自动回复功能

    前言 在论坛上看到了用Python登录微信并实现自动签到,才了解到一个新的Python库: itchat 利用Python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈!! 代码如下: #coding=utf8 import requests import itchat KEY = '8edce3ce905a4c1dbb965e6b35c3834d' def get_response(msg): apiUrl = 'http

  • python实现微信小程序自动回复

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能,必须在自己的微信中添加微信号xiaoice-ms(微软的微信机器人)才能实现,直接复制代码运行之后扫一扫二维码即可,经过测试,该程序能够保持几小时的时间. 实现原理,将别人发送给你的消息转发给AI小冰,然后再将AI的回复转回给那个人. 群消息也是如此,此外还添加了新年问候语,是否与他人进行AI聊天等功能.不过只能实现文本消息以及微信自带表情的转发,不能转发表情.语音等. # -*-coding:utf-8-*- i

  • 使用python实现微信小程序自动签到功能

    功能描述目标 完成多账号微信小程序每天自动签到 输出 签到成功则向微信群发送签到成功的信息 否则提示用户签到失败,需手动签到 包管理 requests itchat time threading 程序的结构设计步骤1 获取要发送的json数据:地址 步骤2 向服务器发送请求 步骤3 根据服服务器响应判断签到是否完成 步骤4 微信交互 代码实现使用findler抓包工具查看请求类型 https://reserve.25team.com/wxappv1/yi/index?version=13 可以看

  • Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 当然具体的参数配置可以参考官方文档https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1 2.获取openid(微信用户标识) import requests from config import APPID, SECRET c

  • python实现微信小程序用户登录、模板推送

    Python 实现微信小程序的用户登录 小程序可以通过官方提供的登录邓丽来获取用户身份的标示, 具体文档可以参考 官方文档, 通过流程时序可以看到, 对于需要和前端配合的服务端开发, 主要实现的就是通过小程序提供的 code 换取用户的 openid 和 session_key, 并用换取到的 openid 和 secret_key 作为自定义的登录态. 分析后得知, 作为小程序后端的开发, 主要实现以下几部分内容: 提供一个 HTTP 接口, 供小程序方使用, 传递code; 换取用户身份标识

  • python获取微信小程序手机号并绑定遇到的坑

    最近在做小程序开发,在其中也遇到了很多的坑,获取小程序的手机号并绑定就遇到了一个很傻的坑. 流程介绍 官方流程图 小程序使用方法 需要将 <button> 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号. <button open-type="getPhoneN

  • Python Flask微信小程序登录流程及登录api实现代码

    一.先来看看效果 接口请求返回的数据: 二.官方登录流程图 三.小程序登录流程梳理: 1.小程序端调用wx.login 2.判断用户是否授权 3.小程序端访问 wx.getUserInfo 4.小程序端js代码: wx.login({ success: resp => { // 发送 res.code 到后台换取 openId, sessionKey, unionId console.log(resp); var that = this; // 获取用户信息 wx.getSetting({ su

  • python实现微信小程序反编译

    对某大神文件进行二次开发实现python实现微信小程序反编译 对于小程序反编译想必大家都不陌生 并且也有许多大神给出了自己的方法 具体可以参考下这篇 可能是我本人技术的问题,很多方法我都没有成功 并且大部分都是在命令行进行,很不方便 所以就重新修改了一下,并进行封装 效果图 ​​key = PBKDF2( wxid.encode("utf-8"), salt.encode("utf-8"), 32, count=1000, hmac_hash_module=SHA1

  • python实现微信小程序的多种支付方式

    目录 原理 多支付接口代码 支付方式代码 Alipay支付 YLpay支付方式 Wxpay支付方式 Creat下订单 多支付 原理 1.利用鸭子类型.规定前台传过来支付方式.pay_methon 2.再支付方式里面实现pay(名字统一)方法 3.回调函数,在支付方式里面写notify(名字统一)统一方法,返回的data统一格式. eg: data={"statu":'success',"order_id":notity_data['order_id'],"

  • python实现微信小程序反编译效果

    对某大神文件进行二次开发实现python实现微信小程序反编译 对于小程序反编译想必大家都不陌生 并且也有许多大神给出了自己的方法 具体可以参考下这篇 可能是我本人技术的问题,很多方法我都没有成功 并且大部分都是在命令行进行,很不方便 所以就重新修改了一下,并进行封装 效果图 ​​key = PBKDF2( wxid.encode("utf-8"), salt.encode("utf-8"), 32, count=1000, hmac_hash_module=SHA1

  • java实现微信小程序加密数据解密算法

    一.概述 微信推出了小程序,很多公司的客户端应用不仅具有了APP.H5.还接入了小程序开发.但是,小程序中竟然没有提供Java版本的加密数据解密算法.这着实让广大的Java开发人员蛋疼. 微信小程序提供的加密数据解密算法链接 我们下载的算法示例如下: 木有Java!! 木有Java!! 木有Java!! 那么如何解决这个问题,我们一起来实现Java版本的微信小程序加密数据解密算法. 二.实现Java版本的微信小程序加密数据解密算法 1.创建项目 这里,我们创建一个Maven工程,具体创建步骤略.

随机推荐