python實現微信機器人: 登錄微信、消息接收、自動回覆功能

這篇文章主要介紹了python實現微信機器人: 登錄微信、消息接收、自動回覆功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧

安裝wxpy

pip install -U wxpy

登錄微信

# 導入模塊
from wxpy import *
# 初始化機器人,掃碼登陸
bot = Bot()

運行以上代碼,會生成一個二維碼,通過圖片掃描二維碼即可登錄微信。

如果是在服務器上運行代碼,無法顯示圖片的時候, 可以選擇通過終端顯示二維碼圖片, 只需要將代碼改成:

from wxpy import *
bot = Bot(console_qr=True)

運行的效果如下:

當然,爲了安全,這個二維碼做了模糊處理

如果你認爲每次都需要掃描二維碼很麻煩,可以啓用緩存,來保存自己的登錄狀態:

bot = Bot(console_qr=True, cache_path=True)

 發送消息

首先我們嘗試給自己和文件傳輸助手發消息:

# 給機器人自己發送消息
bot.self.send('Hello World!')
# 給文件傳輸助手發送消息
bot.file_helper.send('Hello World!')

自動回覆

可通過 預先註冊 的方式,實現消息的自動處理。

“預先註冊” 是指

預先將特定聊天對象的特定類型消息,註冊到對應的處理函數,以實現自動回覆等功能。

註冊消息

提示

每當收到新消息時,將根據註冊規則找到匹配條件的執行函數。
並將 消息對象 作爲唯一參數傳入該函數。

將 Bot.register() 作爲函數的裝飾器,即可完成註冊。

# 獲取所有類型的消息(好友消息、羣聊、公衆號,不包括任何自己發送的消息)
# 並將獲得的消息打印到控制檯
@bot.register()
def print_others(msg):
  print(msg)

同時wxpy也可以給註冊消息的類型加上限制,

# 回覆 my_friend 發送的消息
@bot.register(my_friend)
def reply_my_friend(msg):
  return 'received: {} ({})'.format(msg.text, msg.type)
 
# 回覆發送給自己的消息,可以使用這個方法來進行測試機器人而不影響到他人
@bot.register(bot.self, except_self=False)
def reply_self(msg):
  return 'received: {} ({})'.format(msg.text, msg.type)
 
# 打印出所有羣聊中@自己的文本消息,並自動回覆相同內容
# 這條註冊消息是我們構建羣聊機器人的基礎
@bot.register(Group, TEXT)
def print_group_msg(msg):
  if msg.is_at:
    print(msg)
    msg.reply(meg.text)

我們設置一個自動回覆所有消息的功能:

@bot.register()
def reply_self(msg):
  # return 'received: {} ({})'.format(msg.text, msg.type)
  msg.reply(u'好的呀')

效果如下:

以上所述是小編給大家介紹的python實現微信機器人: 登錄微信、消息接收、自動回覆功能詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章