WeChat 프레임워크를 사용하여 WeChat 로봇에 대한 자세한 튜토리얼을 개발하는 방법(매일 업데이트됨)

Wechaty 프레임워크 기본 소개

최근 인공지능 기술의 급속한 발전으로 인해 챗봇은 다양한 분야에서 널리 활용되고 있습니다. 자동 응답은 소셜 미디어에서 인기 있는 기능이 되었으며 이를 통해 사용자는 봇과 쉽게 상호 작용할 수 있습니다. 오픈 소스 WeChat 챗봇 프레임워크인 Wechaty는 WeChat 자동 응답 기능을 구현합니다.

프레임워크 Wechaty 공식 웹사이트: http://wechaty.js.org/

위챗티란 무엇인가요?

WeChat 개인 계정은 매우 강력하고 유연하며 ChatBot에 매우 적합한 통신사입니다. 음성 메시지, 동영상, 사진, 문자를 유연하고 제한 없이 보낼 수 있으며 다중 그룹 채팅을 지원합니다. 그러나 WeChat 개인 WeChat 계정을 ChatBot으로 사용하려면 비공식 타사 라이브러리를 통해 WeChat에 액세스해야 합니다. 2018년 말 현재 WeChat은 공식 ChatBot API를 출시하지 않았습니다.

WeChat 개인 계정 액세스를 지원하는 많은 타사 라이브러리는 GitHub에서 찾을 수 있으며, 대부분은 Python 기반 WeixinBot, Node.js 기반 Wechaty 등과 같이 Web Wechat의 API를 기반으로 구현됩니다. 웹이 아닌 프로토콜을 지원하는 소수의 라이브러리는 대부분 상업용 비공개 비공개 소스 라이브러리이며, Wechaty는 웹이 아닌 프로토콜을 지원하는 몇 안되는 오픈 소스 프로젝트 중 하나입니다.

단 6줄의 코드만으로 개인 계정을 통해 WeChat 로봇 기능을 구축하여 WeChat 메시지를 자동으로 관리할 수 있습니다.

import {
    
     Wechaty } from 'wechaty'

Wechaty.instance()
.on('scan',        qrcode  => console.log('扫码登录:' + qrcode))
.on('login',       user    => console.log('登录成功:' + user))
.on('message',     message => console.log('收到消息:' + message))
.on('friendship',  friendship => console.log('收到好友请求:' + friendship))
.on('room-invite', invitation => console.log('收到入群邀请:' + invitation))
.start()

요약: Wechaty는 WeChat 챗봇 구축을 위한 풍부한 API를 제공하는 Node.js 기반의 오픈 소스 프로젝트입니다.

Wechaty 특정 기능

消息处理:关键词回复
群管理:自动入群,拉人,踢人
自动处理好友请求
智能对话:通过简单配置,即可加入智能对话系统,完成指定任务

Wechaty 튜토리얼 개요

이 튜토리얼에서는 챗봇 애플리케이션을 생성하는 일련의 단계를 직접 안내합니다.

wechaty로 첫 번째 챗봇 구축

Wechaty 또는 챗봇 애플리케이션 개발 전반에 대한 초보자라면 시작하기 튜토리얼부터 시작하는 것이 좋습니다. 이 튜토리얼에서는 딩 메시지를 받으면 동 메시지로 응답하는 딩동 봇을 구축하게 됩니다.

Wechaty는 Python 개발과 Node.Js 개발을 모두 지원하므로 WeChat 로봇의 2차 개발 및 사용자 정의에 매우 적합합니다.

Wechaty 환경 설치

프로젝트 초기화 프로젝트 초기화

新建一个文件夹
在这个文件夹的终端中,执行 `npm init -y` 生成 `package.json` 文件
新建 `index.js` 文件

종속성 설치

npm i wechaty
npm i qrcode-terminal	# 生成二维码要用的包

Wechaty 봇 만들기

const  {
    
     WechatyBuilder }  = require('wechaty');
const qrcode = require('qrcode-terminal');
 
class weChaty {
    
    
  bot = null      
  constructor() {
    
    
    this.bot =  WechatyBuilder.build();
    this.bot.on('scan', code => {
    
    
      qrcode.generate(code, {
    
     small: true });
    })
    this.bot.on('message', this.onMessage.bind(this));
  }
  onMessage(message) {
    
    
    const talker = message.talker(); 
    if(!talker.payload.friend || message.payload.roomId || talker.payload.type != 1) {
    
       
      return;
    }
    if(message.payload.type != 7) {
    
       
      talker.say("我只能处理文字消息,请发送文字内容");
      return;
    }
    const content = message.text(); 
    talker.say(`你好, 我收到了您发的消息 [${
      
      content}]`);
  }
  run() {
    
    
    this.bot.start();
  }
}
new weChaty().run();

위 코드에서는 Wechaty 인스턴스 봇을 생성하고 이벤트를 수신하여 다양한 메시지를 처리합니다. QR 코드 스캔 이벤트가 수신되면 콘솔은 QR 코드 이미지를 출력합니다. 성공적으로 로그인한 후 메시지를 받으면 메시지 내용을 판단하고 그에 따라 응답합니다.

봇 실제 머신 테스트 실행

봇을 실행하려면 터미널에서 다음 명령을 실행하세요.

node index.js

이 시점에서 Wechaty 로봇이 성공적으로 시작되었습니다. WeChat 스캔 단말기에 표시된 QR 코드를 사용하여 WeChat 계정에 로그인할 수 있습니다. 성공적으로 로그인한 후 누군가가 귀하에게 메시지를 보내면 귀하의 WeChat이 자동으로 그 사람에게 응답합니다.

실제 기계 테스트 결과

여기에 이미지 설명을 삽입하세요

Wechaty를 사용하면 WeChat의 자동 응답 기능을 쉽게 구현할 수 있습니다. 키워드에 따라 다양한 내용을 답변하거나, 더 많은 서비스를 제공하기 위해 다른 외부 API를 호출하는 등 필요에 따라 로봇의 기능을 확장할 수 있습니다. Wechaty의 강력한 기능과 풍부한 커뮤니티 지원은 개발자에게 더 많은 가능성을 제공하여 자신만의 WeChat 챗봇을 더욱 쉽고 흥미롭게 구축할 수 있도록 해줍니다.

중국어 상세 튜토리얼 디렉토리: https://wechaty.gitbook.io/wechaty/v/zh/

Wechaty 메시지 수신/보내기

소식을 받다

WeChat이 메시지를 받을 때마다 우리는 받은 메시지를 나타내는 메시지 변수를 얻을 수 있습니다. 메시지 유형은 텍스트, 사진, 동영상, 링크 공유, 연락처 등이 될 수 있습니다.

wechaty.on('message', msg => console.log(msg))

msg 변수는 Message 클래스의 인스턴스이며 이를 통해 다음과 같은 각 메시지의 모든 세부 정보를 얻을 수 있습니다
여기에 이미지 설명을 삽입하세요
.

텍스트, 사진, 동영상, 링크 카드, 연락처 카드 및 기타 정보를 다른 WeChat 사용자 또는 특정 WeChat 그룹에 보낼 수 있습니다.
여기에 이미지 설명을 삽입하세요

WeChat 그룹에서 메시지를 보내려면 연락처를 방으로 바꾸세요.

위챗 친구 관리/그룹 관리

친구 관리

Contact 클래스를 사용하여 친구를 검색하거나 별칭을 설정할 수 있습니다.

const filehelper = await wechaty.Contact.find({
    
     name: '文件传输助手' })
filehelper.alias('文件中转站')

다른 사용자에게 새로운 친구 요청을 시작하는 것도 가능합니다(Friendship 클래스를 사용하여):

wechaty.Friendship.add(stranger)

또는 친구 요청을 수락하세요.

wechaty.on('friendship', async friendship => {
    
    
  if (friendship.type() === Friendship.Type.Receive) {
    
    
    await friendship.accept()
  }
})

그룹 관리

Room 클래스를 사용하면 그룹 만들기, 그룹 검색, 사람들을 그룹으로 끌어들이기, 그룹에서 사람들 추방하기 등과 같은 작업을 수행할 수 있습니다.

const newRoom = await wechaty.Room.create([contact1, contact2], '新群主题')
const oldRoom = await wechaty.Room.find({
    
     name: '已经存在的群主题' })

방을 얻은 후 다음과 같이 이 방을 기반으로 추가, 빼기 및 제목 작업을 수행할 수 있습니다.

여기에 이미지 설명을 삽입하세요

Wechaty 프레임워크의 구현 원리

첫 번째 단계: 초기 구현은 WeChat 클라이언트의 웹 버전을 기반으로 했습니다. 자세한 내용은 Wechaty 101: v0.0에서 v0.7을 참조하세요. 이 블로그에서는 약 2시간 분량의 비디오 튜토리얼을 통해 구현 원리를 자세히 설명합니다. 그리고 PPT. 모든 웹 기반 구현은 완전히 오픈 소스이며 무료입니다.

두 번째 단계: 웹 기반 WeChat에는 많은 제한 사항이 있습니다. 개발자가 계속해서 자신의 챗봇을 구축할 수 있도록 하기 위해 우리는 다양한 구현 방법을 지원하는 미들웨어 Puppet을 제공합니다. 다양한 WeChat 액세스 방법을 확인하세요.

웹 기반 WeChat 제한 사항

2017년 6월 말부터 웹 기반 위챗 접속 솔루션 이용 시 로그인이 제한될 가능성이 높습니다. 주요 성능은 웹 위챗에 로그인할 수 없다는 것입니다. 그러나 휴대폰 등 다른 플랫폼에는 영향을 미치지 않습니다. 로그인이 제한되어 있는지 확인하세요. https://wx.qq.com에서 QR 코드를 스캔하여 로그인할 수 있는지 확인하세요.

2018년부터 웹 API는 그룹 채팅을 생성하고 자동으로 사람들을 그룹에 끌어들일 수 없습니다.

WeChat 웹 페이지 기반 구현 방법은 무료이며, 기타 액세스 방법은 유료 구매가 필요합니다.또한 오픈 소스 인센티브 계획에 참여하여 무료 토큰을 얻을 수 있습니다.토큰 획득 방법을 보려면 클릭하세요.

다음은 Puppet과 Wechaty의 아키텍처 다이어그램입니다. Puppet에 대한 자세한 소개는 여기에서 확인하세요: Puppet in wiki
여기에 이미지 설명을 삽입하세요

Supongo que te gusta

Origin blog.csdn.net/qq_47452807/article/details/132700048
Recomendado
Clasificación