Introdução geral
O WeChatFerry é uma estrutura subjacente de robô WeChat de código aberto, criada e mantida pelo desenvolvedor lich0821 no GitHub. O projeto, por meio da tecnologia WeChat Hook, fornece um conjunto de SDKs poderosos, permitindo que os desenvolvedores funcionem no WeChat com uma variedade de modelos de linguagem grandes (como ChatGPT, Gemini, DeepSeek, ChatGLM, Xunfei Starfire, Tigerbot etc.), integração, tarefas automatizadas e diálogo inteligente. O módulo principal é escrito em C++, oferece suporte a várias linguagens de cliente (por exemplo, Python, Rust, Go, Java, Node.js, C# etc.) e é adaptado a versões específicas do WeChat (atualmente compatível com 3.9.11.25). Com sua flexibilidade e recursos avançados, o WeChatFerry atraiu 5,5 mil estrelas e 1,1 mil bifurcações, tornando-o uma ferramenta popular para o desenvolvimento de robôs WeChat.
Lista de funções
- MensagensSuporte para envio de texto (com @), imagens, arquivos, GIFs, além de ouvir e receber mensagens.
- Integração de modelos de idiomas grandesAcesso a modelos como ChatGPT, Gemini, DeepSeek, ChatGLM, Xunfei Starfire etc. para resposta inteligente ou processamento de tarefas.
- Gerenciamento de bate-papo em grupoSuporte a operações como convite a membros do grupo e obtenção de informações sobre o grupo.
- processamento multimídiaSuporte para download de imagens e arquivos, descriptografia de imagens e conversão de arquivos de voz (Silk) para MP3.
- acesso ao banco de dadosDados como contatos do WeChat, registros de mensagens, etc. podem ser consultados.
- Gerenciamento do status de loginFornece funções para obter o código QR de login, verificar o status do login, obter informações da conta (wxid, apelido, número do celular etc.).
- Cliente em vários idiomasSuporte para desenvolvimento no lado do cliente em Python, Rust, Go, Java, Node.js, C# e outras linguagens.
- Tarefas automatizadasSuporte ao encaminhamento de mensagens, tarefas programadas, etc., para atendimento ao cliente, educação e outros cenários.
Usando a Ajuda
Processo de instalação
O uso do WeChatFerry é dividido em duas partes: compilação do módulo principal (para desenvolvedores) e instalação no lado do cliente (para usuários normais). Veja a seguir as etapas detalhadas:
1. instalação do cliente (em Python, por exemplo)
- Instalação do ambiente PythonRecomendamos o uso do Python 3.10, faça o download e instale-o em python.org e certifique-se de que a versão
pip
Disponível. - Instalar o pacote wcferryAbra a linha de comando e execute:
pip install --upgrade wcferry
- Verificar a instalaçãoExecutar em Python
import wcferry
Se nenhum erro for relatado, a operação foi bem-sucedida.
2. compilação do módulo principal (opcional para desenvolvedores)
- Preparação do ambiente::
- Instale o Visual Studio 2019 (Community Edition), que inclui componentes de desenvolvimento C++.
- Instale o Git para clonar repositórios.
- armazém de clones::
git clone https://github.com/lich0821/WeChatFerry.git cd WeChatFerry
- Compilação de projetos::
- Abrir com o VS2019
WeChatFerry\WeChatFerry\WeChatFerry.sln
. - Clique em "Generate" > "Generate Solution" e, depois de compilar a solução, você poderá encontrá-la na seção
WeChatFerry\WeChatFerry\Out
para gerar o diretóriosdk.dll
. - tomar nota deSe você encontrar
protoc
Erro 9009, verifique o ambiente ou a configuração do Pythonprotoc
(requer que o protobuf esteja instalado).
- Abrir com o VS2019
3. abra o WeChat e injete
- Preparar a MicrosoftInstale uma versão compatível do WeChat (por exemplo, 3.9.10.27 ou 3.9.11.25, consulte Versões).
- exemplo de execução: consulte o carregamento do código oficial
sdk.dll
e inicializado:import ctypes sdk = ctypes.cdll.LoadLibrary("C:/path/to/WeChatFerry/WeChatFerry/Out/sdk.dll") sdk.WxInitSDK(False, 10086) # 初始化,默认端口 10086
- Sair do SDKExecute-o quando terminar de usá-lo
sdk.WxDestroySDK()
O processo Python será encerrado quando estiver pronto para começar e terminar.
Funções principais
Mensagens
- Enviar mensagem de texto::
from wcferry import Wcf wcf = Wcf() wcf.send_text("你好", "wxid_xxxx") # wxid_xxxx 为目标微信 ID
- Suporte @ alguém:
wcf.send_text("你好 @Tom", "roomid_xxxx")
.
- Suporte @ alguém:
- receber uma mensagem::
wcf.enable_receiving_msgs() # 开启接收 while True: msg = wcf.get_msg() if msg: print(f"收到: {msg.content}") wcf.disable_receiving_msgs() # 停止接收
Integração de modelos de idiomas grandes
- Acesso ao exemplo do ChatGPT(Você precisa configurar a chave de API por conta própria):
from wcferry import Wcf import openai wcf = Wcf() openai.api_key = "your_api_key" def chatgpt_reply(msg): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": msg.content}] ) wcf.send_text(response.choices[0].message.content, msg.sender) wcf.enable_receiving_msgs() while True: msg = wcf.get_msg() if msg: chatgpt_reply(msg)
processamento multimídia
- Enviar imagem::
wcf.send_image("C:/Pictures/test.jpg", "wxid_xxxx")
- Fala para MP3: Uso
smc
(compilação necessária), defina o módulo.silk
Documentação convertida para.mp3
::from wcferry import smc smc.silk_to_mp3("input.silk", "output.mp3")
Gerenciamento de bate-papo em grupo
- Membros convidados::
wcf.invite_room_members("roomid_xxxx", ["wxid_user1", "wxid_user2"])
- Obter informações sobre o grupo::
room_info = wcf.get_chatroom_info("roomid_xxxx") print(room_info)
Exemplo de fluxo de operação
- Estrutura de lançamento: Compilação
sdk.dll
Se quiser usar um script Python, execute o script Python para carregá-lo e inicializá-lo. - Faça login no WeChat: Implementação
wcf.get_login_qrcode()
Obtenha o código QR e leia-o para fazer login. - Recursos de configuraçãoScripts para escuta de mensagens, resposta automática ou gerenciamento de grupos: escreva scripts para escuta de mensagens, resposta automática ou gerenciamento de grupos.
- teste operacionalExecute o script na linha de comando para verificar se o comportamento da Microsoft está de acordo com o esperado.
- Otimização da depuraçãoSe algo der errado, você poderá adicionar um registro de depuração no VS2019 (por exemplo
DbgMsg("Test")
), questões de posicionamento.
Suporte a clientes em vários idiomas
- Ferrugem: Uso wcfrust.
- Ir: Referência go_wcf_http.
- JavaVeja Descrição do cliente java.
- Node.js: Uso nó wcferry.
- C#: Referência WeChatFerry-CSharp.
- Docker: Uso docker_wechat.
advertência
- A versão atual do WeChat é 3.9.11.25, o que pode causar falha na injeção.
- O projeto é apenas para fins de estudo e pesquisa e segue a licença do MIT.
- A abertura múltipla não é suportada no momento e requer uma única instância para ser executada.