>  기사  >  백엔드 개발  >  Python을 사용하여 WeChat 챗봇을 만드는 방법을 가르쳐주세요.

Python을 사용하여 WeChat 챗봇을 만드는 방법을 가르쳐주세요.

不言
不言원래의
2018-06-02 15:24:283753검색

이 글은 주로 Python을 사용하여 WeChat 챗봇을 만드는 방법을 단계별로 설명합니다. 관심 있는 친구들이 참고할 수 있습니다.

최근 WeChat API를 조사하다가 매우 사용하기 쉬운 Python 라이브러리를 발견했습니다. : wxpy. itchat을 기반으로 wxpy는 웹 WeChat 통신 프로토콜을 사용하여 WeChat 로그인, 메시지 보내기 및 받기, 친구 검색, 데이터 통계 및 기타 기능을 구현합니다.

여기에서는 이 라이브러리를 소개하고 마지막으로 챗봇을 구현하겠습니다.

기대되시나요? 당신은 그것을 기대하고 있습니까?

자, 이제 주요 주제부터 시작하겠습니다.

준비

설치는 매우 간단합니다. 공식 소스에서

pip install -U wxpy

를 다운로드하여 설치하거나 Douban 소스에서 설치합니다.

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

모듈 사전 탐색

설치가 완료된 후 사용해 보겠습니다. 몇 가지 기본 기능

1. 위챗에 로그인하려면 코드를 스캔하세요

from wxpy import *
bot = Bot()

위 프로그램을 실행하면 모바일 위챗으로 QR 코드를 스캔하면 로그인됩니다.
하지만 위 프로그램에는 실행할 때마다 QR코드를 스캔해야 한다는 단점이 있습니다. 그러나 wxpy는 아래와 같이 매우 세심하게 캐싱 옵션을 제공합니다.

bot = Bot(cache_path=True)

이렇게 하면 매번 QR 코드를 스캔하지 않고도 로그인 정보를 저장할 수 있습니다.

2. 메시지 보내기

bot.file_helper.send("hello")

여기의 file_helper는 파일 전송 도우미에게 메시지를 보내면 휴대폰으로 다음 메시지를 받을 수 있습니다.

3. message

받은 메시지에 자동으로 답장하는 기능을 구현합니다.

@bot.register()
def print_message(msg): 
 print(msg.text) 
 return msg.text

# 进入Python命令行,让程序保持运行
embed()

치앙 형제가 자신의 공개 계정 관리 플랫폼을 오픈하고 백엔드에서 자신에게 메시지를 보내면 다음과 같은 메시지 답장을 받을 수 있습니다

4. 친구 및 위챗 그룹 검색

검색 회사 그룹을 구현해 보겠습니다. , 상사를 찾고 상사의 메시지를 전달하는 기능

from wxpy import *

bot = Bot(cache_path=True)

# 定位公司群
company_group = bot.groups().search('公司微信群')[0]

# 定位老板

boss = company_group.search('老板大名')[0]

# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg): 
 if msg.member == boss:  
 msg.forward(bot.file_helper, prefix='老板发言')

# 堵塞线程
embed()

그룹에서 상사가 소리 지르기를 좋아하는 학생들에게는 앞으로는 상사로부터 중요한 정보를 놓칠 염려가 없다는 좋은 소식입니다~ ~

데이터 통계

wxpy의 친구 통계 기능은 사용하기 매우 쉽고 친구의 지리적 위치 분포와 성별 분포를 쉽게 계산할 수 있습니다.

아래 코드에서 Qiang 형제는 친구의 분포를 계산하고 사람이 가장 많은 10개 지역을 인쇄합니다.

from wxpy import *
bot = Bot(cache_path=True)
friends_stat = bot.friends().stats()

friend_loc = [] # 每一个元素是一个二元列表,分别存储地区和人数信息
for province, count in friends_stat["province"].iteritems():
 if province != "":
 friend_loc.append([province, count])

# 对人数倒序排序
friend_loc.sort(key=lambda x: x[1], reverse=True)

# 打印人数最多的10个地区
for item in friend_loc[:10]:
 print item[0], item[1]

가 계산한 지역 분포 데이터는 다음과 같이 차트로 그려집니다

치앙 형제는 상하이에 있고 그의 친구들도 대부분 상하이 출신입니다. 위의 차트도 이러한 상황을 진실로 반영하고 있습니다.

성별 통계 분포 코드는 다음과 같습니다

for sex, count in friends_stat["sex"].iteritems():
 # 1代表MALE, 2代表FEMALE
 if sex == 1:
 print "MALE %d" % count
 elif sex == 2:
 print "FEMALE %d" % count

성별 분포 데이터는 다음과 같이 차트로 생성됩니다

대부분의 친구가 남자임을 알 수 있습니다. 남자친구가 많으면 아내가 더 편해질텐데~~

Chatbot

위의 기능소개 부분을 토대로 챗봇을 구현해보겠습니다.

챗봇은 Turing 봇을 기반으로 합니다. Turing Robot은 중국 맥락에서 가장 지능적인 로봇 두뇌인 Turing Robot에 계정을 등록하고 로봇을 만들 수 있습니다.

# -*- coding: utf-8 -*-
import json
import requests
from wxpy import *

# 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text): 
 url = "http://www.tuling123.com/openapi/api"
 api_key = "你的api key"
 payload = {
 "key": api_key,
 "info": text,
 "userid": "123456"
 }
 r = requests.post(url, data=json.dumps(payload)) 
 result = json.loads(r.content) 
 return "[tuling] " + result["text"]

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

@bot.register(mp)
def forward_message(msg): 
 return auto_reply(msg.text)

embed()

위 프로그램을 실행하고 자신에게 메시지를 보내면 다음과 같은 대화가 나옵니다

로봇이 너무 웃겨서 나오면 빨간 봉투 달라고 하고 저를 남자친구로 대해줍니다~

위 내용은 Python을 사용하여 WeChat 챗봇을 만드는 방법을 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.