ノードを使用して WeChat 個人アカウント ロボットを構築する方法

php中世界最好的语言
リリース: 2018-06-02 10:19:17
オリジナル
1678 人が閲覧しました

今回は、node を使用して WeChat 個人アカウント ロボットを構築する方法と、node を使用して WeChat 個人アカウント ロボットを構築する際の notes について説明します。以下は実際的なケースです。見てみましょう。

現在、日常生活は WeChat と切り離せないものになっています。この記事では、WeChat の個人アカウントを操作して、自動友達リクエスト、キーワード返信、自動返信などの機能を実現する方法を紹介します。グループビルディング。コミュニティ運営の効率が大幅に向上しました。

wechaty (https://chatie.io/wechaty/) は、オープンソースの WeChat 個人アカウント SDK であり、一連のパッケージを実行し、シンプルで使いやすいインターフェイスを提供し、開発者はその上に構築できます。それはWeChatロボットの開発です。これを使用してさまざまなことができます:

1) 友達の管理と維持; 2) チャット メッセージを迅速かつ秩序正しく処理する 3) WeChat グループ管理 4) 自動返信を実装する 5)...

1. すぐに始める

wechaty プロジェクトのホームページには、WeChat ロボットを作成するための 6 行のコードが記載されているので、試してみましょう。 注: Node.js バージョン >= 8.5

世界一短い ChatBot コード: 6 行の JavaScript

const { Wechaty } = require('wechaty')
Wechaty.instance() // Singleton
.on('scan', (url, code) => console.log(`Scan QR Code to login: $[code]\n${url}`))
.on('login', user => console.log(`User ${user} logined`))
.on('message', message => console.log(`Message: ${message}`))
.start()
ログイン後にコピー

これらの 6 行のコードは、WeChat 個人アカウントへのログインと受信メッセージの印刷を実装します。

wechaty は Docker と NPM を通じて実行できます。この記事では、npm メソッド

node bot.js を使用して、この個人アカウント ロボットを起動します。このとき、コマンド ラインはブラウザーでリンクを出力します。これは QR コードです。コードをスキャンしてログインできます (注: 2017 年末に、WeChat は WeChat ウェブ版ログインのサポートを段階的に終了したため、後から登録された WeChat アカウントはウェブ WeChat ログインをサポートしません。アカウントを購入するのに 105 RMB を費やしました。ぜひ使ってみてください。3 秒間財布が痛くなります)

User Contact<刘星> logined // 扫码登录
Message: Message<JavaScript之禅> // 接收微信消息
ログイン後にコピー

ロボット体験は記事の最後にあります。 サンプルコードのアドレス: Github

2. 友達リクエストを自動的に渡す

前のサンプルコードを通して、このライブラリがいかにシンプルで強力であるかを知ることができます。次に、最初の小さな関数を実装しましょう: 友達を自動的にリクエストします

//···
.on('friend', async (contact, request) => {
if (request) {
if (/JavaScript|JS/i.test(request.hello)) {
logMsg = 'accepted because verify messsage is "JS之禅"'
request.accept()
} else {
logMsg = 'not auto accepted, because verify message is: ' + request.hello
}
} else {
logMsg = 'friend ship confirmed with ' + contact.get('name')
}
})
//···
ログイン後にコピー

ここでは友達イベントをリッスンします。誰がどのような友達リクエストを送信したかを取得できます。ここではフレンド追加時のリクエストを検証しましたが、フレンドリクエストの内容が[JS]または[JavaScript]の場合、フレンドリクエストは自動的に通過します。

QR コードを開くためにブラウザにリンクをコピーし、毎回スキャンするのはまったくクールではなく、サーバー上で使用するのにも不便です。現時点では、qrcode-terminal パッケージを使用して、コマンド ラインで QR コードを直接出力できます。

//···
const QrcodeTerminal = require('qrcode-terminal')
//···
.on('scan', (url, code) => {
let loginUrl = url.replace('qrcode', 'l')
QrcodeTerminal.generate(loginUrl)
console.log(url)
})
//···
ログイン後にコピー

node bot.js コマンドラインを実行すると、QR コードが直接印刷されるため、非常に便利です。

3. 自動返信

次に、2 番目の小さな機能であるキーワード自動返信を実装しましょう。

//···
.on('message', async (message) => {
const contact = message.from()
const content = message.content()
const room = message.room()
if (room) {
console.log(`Room: ${room.topic()} Contact: ${contact.name()} Content: ${content}`)
} else {
console.log(`Contact: ${contact.name()} Content: ${content}`)
}
// 不处理自己发的消息
if (message.self()) {
return
}
if (/JavaScript|Js|js/.test(content)) {
message.say('关注公众号 JavaScript之禅')
}
})
//···
ログイン後にコピー

上記では、メッセージ処理のためにメッセージをリッスンしています。メッセージはすべてのメッセージを受信でき、グループ チャット メッセージであるかどうかを判断し、メッセージに基づいて対応するコンテンツを返信できます。 [js]を送信すると、設定したメッセージが届き、自動返信が実現します。

4. グループを自動的にプルする

前述したように、メッセージ処理とグループ管理を組み合わせることで、キーワードに基づいてグループを自動的にプルすることができます

//···
.on('message', async (message) => {
const contact = message.from()
const content = message.content()
const room = message.room()
if (room) {
console.log(`Room: ${room.topic()} Contact: ${contact.name()} Content: ${content}`)
} else {
console.log(`Contact: ${contact.name()} Content: ${content}`)
}
if (message.self()) {
return
}
if (/JavaScript|Js|js/.test(content)) {
message.say('关注公众号 JavaScript之禅没?')
}
// 自动拉群
if (/加群/.test(content)) {
let keyroom = await Room.find({ topic: 'test' })
if (keyroom) {
await keyroom.add(contact)
await keyroom.say('欢迎新朋友!', contact)
}
}
})
//···
ログイン後にコピー

での事例を読んだことがあるかと思います。この記事では、この方法をマスターしました。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue でフィルターを使用する方法

vue を使用して dom のクラスを決定する方法

以上がノードを使用して WeChat 個人アカウント ロボットを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート