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

php中世界最好的语言
リリース: 2018-06-06 09:43:08
オリジナル
1916 人が閲覧しました

今回は、nodeを使用して個人アカウントロボットを作成する方法と、nodeを使用して個人アカウントロボットを作成する際の注意点を説明します。以下は実際のケースです。

現在、日常生活は 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)
}
}
})
//···
ログイン後にコピー

上記のコードは、グループを操作するために Room を渡します。チャット。 このとき、「グループを追加」と返信すると、自動的にグループに追加されます。もちろん、Room.del を使用して特定のグループ メンバーを追い出すなど、さらに多くのことを行うこともできます。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

フロントエンドインターフェイスで DOM 要素の絶対位置を取得する方法

Angular コードを最適化する方法

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

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