今回は、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 要素の絶対位置を取得する方法
以上がノードを使用して個人アカウントロボットを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。