python-wechaty:快速開發自動回復&關鍵字入群聊天機器人


大部分初學者都是以:自動回復和關鍵字入群這兩個基礎功能上手聊天機器人,在此我將介紹如何使用python-wechaty快速實現這兩個功能。

一、安裝 & 配置

python-wechaty聊天機器人框架只需要指定版本包以及協議token即可,安裝和配置過程非常簡單,無腦復制粘貼即可。

1.1 安裝依賴包

# 安裝python-wechaty包
pip install wechaty
# 安裝插件庫
pip install wechaty-plugin-contrib

1.2 配置Token

Token的配置可以有多種方式:

方法一:通過環境變量來配置

*export* WECHATY_PUPPET_HOSTIE_TOKEN='your-token'

方法二:通過python代碼來配置

import os
os.environ['WECHATY_PUPPET_HOSTIE_TOKEN'] = 'your-token'

那如何獲取長期Token呢?詳細請看:Everything-about-Wechaty

二、關鍵字入群

基於python-wechaty來開發關鍵字入群功能非常簡單,只需要使用到插件庫中的:RoomInviterPlugin插件。

使用方法如下所示:

import asyncio
from typing import Dict
from wechaty import Wechaty
from wechaty_plugin_contrib.contrib import (
    RoomInviterOptions,
    RoomInviterPlugin
)
from wechaty_plugin_contrib.matchers import (
    MessageMatcher,
    RoomMatcher
)

async def run():
    """async run method"""
    rules: Dict[MessageMatcher, RoomMatcher] = {
        MessageMatcher('wechaty'): RoomMatcher('Wechaty開發者群(1)'),
				MessageMatcher('python-wechaty'): RoomMatcher('Python-Wechaty開發者群(2)')
    }
    plugin = RoomInviterPlugin(options=RoomInviterOptions(
        name='python-wechaty關鍵字入群插件',
        rules=rules,
        welcome='歡迎入群 ~'
    ))
    bot = Wechaty().use(plugin)
    await bot.start()

asyncio.run(run())

在有token的前提下,以上代碼復制粘貼即可開發一個關鍵字入群的聊天機器人,是不是非常簡單呢?

三、自動回復

自動回復也是我們日常生活工作中的一些高頻使用場景,而回復內容不僅限於文字,還可以是圖片,文件,鏈接以及小程序等等。

示例代碼如下所示:

import asyncio
from wechaty import Wechaty, MiniProgram  # type: ignore
from wechaty_puppet import (    # type: ignore
    FileBox
)

from wechaty_plugin_contrib import (
    AutoReplyRule,
    AutoReplyPlugin,
    AutoReplyOptions,
)

from wechaty_plugin_contrib.matchers import ContactMatcher

async def run():
    """async run method"""
    img_url = 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy' \
              '/it/u=1257042014,3164688936&fm=26&gp=0.jpg'
    plugin = AutoReplyPlugin(options=AutoReplyOptions(
        rules=[
            AutoReplyRule(keyword='ding', reply_content='dong'),
            AutoReplyRule(keyword='七龍珠', reply_content='七龍珠'),
            AutoReplyRule(
                keyword='七龍珠',
                reply_content=FileBox.from_url(img_url, name='python.png')
            ),
            AutoReplyRule(
                keyword='網易-李白',
                reply_content=MiniProgram.create_from_json({...})
            )
        ],
        matchers=[
            ContactMatcher('秋客'),
        ]
    ))
    bot = Wechaty().use(plugin)
    await bot.start()

asyncio.run(run())

代碼非常簡單(API設計的很人性化),相信大家一眼就能夠看懂,在此我就不做過多解釋。

四、總結

python-wechaty有非常人性化的API,同時內置了很多高頻功能插件庫,提供給開發者能夠快速上手開發出自己的小應用。

整個wechaty的目標是面向所有IM平台,打造一款通用聊天機器人框架,也歡迎各位關注並使用python-wechaty框架。


免責聲明!

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



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