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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM