zoukankan      html  css  js  c++  java
  • wxpy微信模块学习之机器人对象

    初始化/登录

         class wxpy.Bot(cache_path=Noneconsole_qr=Falseqr_path=Noneqr_callback=Nonelogin_callback=Nonelogout_callback=None)

      参数:

        cache_path:设置当前会话缓存路径,并开启缓存功能;为None(默认)则不开启缓存功能;

                开启缓存后可在短时间内避免重复扫码,缓存失效时会重新要求登陆;

                设为True时,使用默认的缓存路径 ‘wxpy.pkl’;

        console_qr:在终端中显示登陆二维码,需要安装 pillow 模块 (pip3 install pillow);

              可为整数(int),表示二维码单元格的宽度,通常为 2 (当被设为 True 时,也将在内部当作 2)

               也可为负数,表示以反色显示二维码,适用于浅底深字的命令行界面;

        qr_path:保存二维码的路径

        qr_path: 获得二维码后的回调,可以用来定义二维码的处理方式,接收参数: uuid, status, qrcode

        login_callback – 登陆成功后的回调,若不指定,将进行清屏操作,并删除二维码文件

        logout_callback – 登出时的回调

        Bot.enable_puid(path='wxpy_puid.pkl')

    复制代码
    # 启用 puid 属性,并指定 puid 所需的映射数据保存/载入路径
    bot.enable_puid('wxpy_puid.pkl')
    
    # 指定一个好友
    my_friend = bot.friends().search('游否')[0]
    
    # 查看他的 puid
    print(my_friend.puid)
    # 'edfe8468'
    复制代码

           启用聊天对象的 puid 属性:wxpy 特有的聊天对象/用户ID,不同于其他 ID 属性,puid 可始终被获取到,且具有稳定的唯一性;

        Bot.auto_mark_as_read::为 True 时,将自动消除手机端的新消息小红点提醒 (默认为 False);

    获取聊天对象

      Bot.self

        机器人自身 (作为一个聊天对象);

    1
    2
    3
    4
    5
    6
    # 在 Web 微信中把自己加为好友
    bot.self.add()
    bot.self.accept()
     
    # 发送消息给自己
    bot.self.send('能收到吗?')

         Bot.file_helper

         文件传输助手

         Bot.friends(update=False)

          参数:update – 是否更新

          返回:聊天对象合合集

          返回类型:wxpy.chats

      Bot.groups(update=False,contact_only=False)

          参数:update – 是否更新;contact_only=是否限于保存为联系人的群聊;

          返回:聊天群聊合集

          返回类型:wxpy.chats

       Bot.maps(update=False)

          参数:update – 是否更新;

          返回:聊天对象合集

          返回类型:wxpy.chats

        Bot.chats(update=False)

          参数:update – 是否更新;

          返回:聊天对象合集

          返回类型:wxpy.chats

    搜索聊天对象

       通过。search()获得的结果均为列表;若希望获得唯一结果,可使用ensure_one()

        搜索好友:

    # 搜索名称包含 '游否' 的深圳男性好友
    found = bot.friends().search('游否', sex=MALE, city='深圳')
    # [<Friend: 游否>]
    # 确保搜索结果是唯一的,并取出唯一结果
    youfou = ensure_one(found)
    # <Friend: 游否>

        搜索群聊:

    # 搜索名称包含 'wxpy',且成员中包含 `游否` 的群聊对象
    wxpy_groups = bot.groups().search('wxpy', [youfou])
    # [<Group: wxpy 交流群 1>, <Group: wxpy 交流群 2>]

        在群聊中搜索:

    # 在刚刚找到的第一个群中搜索
    group = wxpy_groups[0]
    # 搜索该群中所有浙江的群友
    found = group.search(province='浙江')
    # [<Member: 浙江群友 1>, <Group: 浙江群友 2>, <Group: 浙江群友 3> ...]

        搜索任何类型的聊天对象 (但不包含群内成员):

    # 搜索名称含有 'wxpy' 的任何聊天对象
    found = bot.search('wxpy')
    # [<Friend: wxpy 机器人>, <Group: wxpy 交流群 1>, <Group: wxpy 交流群 2>]

    加好友和建群

        Bot.add_friend(user, verify_content='')

           添加好友

           参数:user – 用户对象,或 user_name;

              verify_content – 验证说明信息

         Bot.add_mp(user)

           添加公众号

           参数:user – 公众号对象,或 user_name;

          Bot.accept_friend(user)

           接收好友请求

            参数:user – 用户对象,或 user_name;

              verify_content – 验证说明信息

            返回:新的好友对象

           返回类型:wxpy.chats

              自动接收好友请求:

    复制代码
    # 注册好友请求类消息
    @bot.register(msg_types=FRIENDS)
    # 自动接受验证信息中包含 'wxpy' 的好友请求
    def auto_accept_friends(msg):
        # 判断好友请求中的验证文本
        if 'wxpy' in msg.text.lower():
            # 接受好友 (msg.card 为该请求的用户对象)
            new_friend = bot.accept_friend(msg.card)
            # 或 new_friend = msg.card.accept()
            # 向新的好友发送消息
            new_friend.send('哈哈,我自动接受了你的好友请求')
    复制代码

          Bot.creaete_group(users,topic=None)

          创建一个新的群聊

            参数:users – 用户列表,不含自己,至少两位;

              topic --群名称

            返回:群建立成功,返回一个新的群聊对象

            返回类型:wxpy.Group

    其他

          Bot.user_details(user_or_users,chunk_size=50)

          获取单个或批量获取多个用户的详细信息(地区、性别、签名等),但不可用于群聊成员

            参数:user_or_users – 单个或多个用户对象或 user_name;

              chunk_size – 分配请求时的单批数量,目前为 50

            返回:单个或多个用户用户的详细信息

          Bot.upload_file(path)

          上传文件,并获取 media_id,可用于重复发送图片、表情、视频,和文件

            参数:path – 文件路径;

            返回:media_id

          返回类型:str

          Bot.join()

          堵塞进程,直到结束消息监听 (例如,机器人被登出时)

          Bot.logout()

          登出当前账号

    微信多开

          初始化多个Bot对象,即可:

    bot1 = Bot()
    bot2 = Bot()
  • 相关阅读:
    常用 SQL Server 规范集锦
    让Git忽略所有obj和bin目录的同步
    Sql server 存储过程基础语法
    nginx 站点代理,负载均衡
    CentOS7.0安装Nginx-1.12.0
    CentOS7安装GNOME可视化界面和如何配置IP地址
    开发工具资料集合
    NOIP2018总结反思
    NOIP2018考试报告
    STL基础用法
  • 原文地址:https://www.cnblogs.com/taoyucheng/p/10291371.html
Copyright © 2011-2022 走看看