ノードでWhatsAppボットを作成する方法.js
24201 ワード
目次
導入
WhatsAppメッセンジャーは、私たちがリアルタイムでメッセージを送受信できるクロスプラットフォームメッセージングアプリです.WhatsAppメッセンジャーは、地球上でほぼすべての人が使用されます.残念ながら、電報とは異なり、WhatsAppのAPIの使用量はまだ制限されます.
このポストでは、サードパーティのライブラリの助けを借りて無料WhatsAppボットを作る方法を紹介します.
必要なライブラリ
NPMからライブラリをインストールするには、まず最初にノードをインストールする必要があります.以降、NPMパッケージからライブラリをインストールします.
WhatsApp Webのインストールjs
$ npm install whatsapp-web.js
or
$ yarn add whatsapp-web.js
QRコードターミナルのインストール$ npm install qr-code-terminal
or
$ yarn add qr-code-terminal
プログラムの実行方法
ファイルを作成する
app.js
プロジェクトでこのコードをペーストします.const qrcode = require("qrcode-terminal");
const { Client } = require("whatsapp-web.js");
const client = new Client();
client.initialize();
client.on("qr", (qr) => {
qrcode.generate(qr, { small: true });
});
client.on("ready", () => {
console.log("Client is ready!");
});
次に、端末またはコマンドプロンプトで、このコマンドを入力します.$ node app
or
$ node app.js
コマンドが実行されると、我々はボットを作成するために使用WhatsAppのアカウントでスキャンされるQRコードが表示されます.メッセージを返す
ボットの作成の目標は、メッセージに対応できるようにすることです.そこで、作成したプロジェクトで次のコードを貼り付けます.
//Replying Messages
client.on("message", (message) => {
if (message.body === "hello") {
message.reply("Hiiiii");
}
});
他の誰かがタイプAhello
ボットへのメッセージ、我々はそれにボットの返信を行います.認証の作成
認証を作成する機能は、我々がログインするたびにログインする必要がないことです
app.js
.認証を作成するコードは次のとおりです.
const qrcode = require("qrcode-terminal");
const { Client, LocalAuth } = require("whatsapp-web.js");
//store authentication data to a file
const client = new Client({
authStrategy: new LocalAuth(),
});
client.initialize();
client.on("qr", (qr) => {
qrcode.generate(qr, { small: true });
});
client.on("authenticated", () => {
console.log("AUTHENTICATED");
});
client.on("ready", () => {
console.log("Client is ready!");
});
client.on("message", (message) => {
if (message.body === "hello") {
message.reply("Hiiiii");
}
});
URLからのイメージによるメッセージの応答
一方、テキストメッセージで返信すればボットはあまり対話的ではないので、画像などのメディアを使ってメッセージに返信できます.
ここでは、ボットとメディアを返信するコードです
const qrcode = require("qrcode-terminal");
const { Client, LocalAuth, MessageMedia } = require("whatsapp-web.js");
const client = new Client({
authStrategy: new LocalAuth(),
});
client.initialize();
client.on("qr", (qr) => {
qrcode.generate(qr, { small: true });
});
client.on("authenticated", () => {
console.log("AUTHENTICATED");
});
client.on("ready", () => {
console.log("Client is ready!");
});
//Replying Messages with image from url
client.on("message", async (message) => {
if (message.body === "meme") {
//get media from url
const media = await MessageMedia.fromUrl(
"https://user-images.githubusercontent.com/41937681/162612030-11575069-33c2-4df2-ab1b-3fb3cb06f4cf.png"
);
//replying with media
client.sendMessage(message.from, media, {
caption: "meme",
});
}
});
私たちは誰か他のタイプをAmeme
メッセージ.Yu GI Oh APIによる実装
ライブラリは、ケーススタディのニーズに合わせて調整することができることを証明する.この場合は、YGOPRODeck Yu-Gi-Oh! API .
次はどのようにYu giああです!我々が作るロボット
Yugioh Card Name
WhatsAppメッセージを介して.Axios
WhatsAppボットはYu Gi - OHに要求を送信できるようにするために必要です!API$ npm install axios
or
$ yarn add axios
ここでYu giの完全なコードです!ボットconst { Client, LocalAuth, MessageMedia } = require("whatsapp-web.js");
const axios = require("axios");
const client = new Client({
authStrategy: new LocalAuth(),
});
client.initialize();
client.on("qr", (qr) => {
console.log("QR RECEIVED", qr);
});
client.on("authenticated", () => {
console.log("AUTHENTICATED");
});
client.on("ready", () => {
console.log("Client is ready!");
});
client.on("message", async (msg) => {
if (msg.body) {
axios
.get(
`https://db.ygoprodeck.com/api/v7/cardinfo.php?name=${encodeURIComponent(
msg.body
)}`
)
.then(async (res) => {
if (res.data.error) {
msg.reply("No card matching your query was found in the database.");
} else {
const media = await MessageMedia.fromUrl(
res.data.data[0].card_images[0].image_url
);
client.sendMessage(msg.from, media, {
caption: `Name : ${res.data.data[0].name}\nType : ${res.data.data[0].type}\nDesc : ${res.data.data[0].desc}
`,
});
}
})
.catch((error) => {
console.error(error);
});
}
});
私はYu Gi - OHからテキストを使用しているメッセージをタイプしようとしています!カード名Card Shuffle
そして、ボットは我々が以前に送ったカードの写真と説明で応えます.私は別のカードの名前を使用してメッセージを入力しようとして、バーニング竹剣と呼ばれる.
結論
WhatsApp APIはまだ制限されているので、サードパーティ製のツールのような
whatsapp-web.js
ヘルプたくさん.しかし、このライブラリはWhatsAppと提携していないので、まだ多くの問題があります.このプロジェクトのコードは以下の通りです.https://github.com/jagadyudha/yugioh-whatsapp-bot
この記事はもともと公開されたHow to Create a Whatsapp Bot With Node.js — Jagad Yudha Awali
Reference
この問題について(ノードでWhatsAppボットを作成する方法.js), 我々は、より多くの情報をここで見つけました https://dev.to/jagadyudha/how-to-create-a-whatsapp-bot-with-nodejs-3287テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol