ホームページ  >  記事  >  バックエンド開発  >  Python を使用して WeChat チャットボットを作成する方法を教えます

Python を使用して WeChat チャットボットを作成する方法を教えます

不言
不言オリジナル
2018-06-02 15:24:283870ブラウズ

この記事では主に Python を使用して WeChat チャットボットを作成する方法を段階的に説明します。興味のある友人は参考にしてください。 :wxpy。 wxpy は、itchat に基づいて、Web WeChat 通信プロトコルを使用して、WeChat ログイン、メッセージの送受信、友達の検索、データ統計、その他の機能を実装します。

ここではこのライブラリを紹介し、最後にチャットボットを実装します。

興奮していますか?楽しみにしてますか?

さて、本題から始めましょう。

準備

インストールはとても簡単で、公式ソースから

pip install -U wxpy

をダウンロードしてインストールするか、Doubanソースからインストールしてください

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

モジュールの下調べ


インストールが完了したら、試してみましょういくつかの基本機能

1. コードをスキャンして WeChat にログインします

from wxpy import *
bot = Bot()

上記のプログラムを実行すると、モバイル WeChat でスキャンしてログインします。

しかし、上記のプログラムには欠点があり、実行するたびに QR コードをスキャンする必要があります。ただし、wxpy は、以下に示すように、非常に慎重にキャッシュ オプションを提供しています

bot = Bot(cache_path=True)

この方法により、毎回 QR コードをスキャンすることなくログイン情報を保存できます。

2. メッセージを送信します

bot.file_helper.send("hello")

ここでの file_helper は WeChat のファイル転送アシスタントにメッセージを送信し、携帯電話で次のメッセージを受信できます

3. message

受信したメッセージに対して自動で返信する機能を実装しています。

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

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

強兄弟は自分の公式アカウント管理プラットフォームを開き、バックエンドで自分にメッセージを送信すると、次のメッセージの返信を受け取ることができます

4. 友達と WeChat グループを検索します

検索会社グループを実装しましょう、上司を見つけて上司のメッセージを転送する機能

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

性別分布データは次のようにグラフとして生成されます

友達の大部分が男性であることがわかります。男友達が多いと奥さんも安心しますよ〜〜

チャットボット

上記の機能紹介部分の基礎を踏まえて、チャットボットを実装してみましょう。

チャットボットは 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。