Rumah >hujung hadapan web >tutorial js >Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Jennifer Aniston
Jennifer Anistonasal
2025-02-10 14:20:14673semak imbas

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

pada masa kini, bot digunakan untuk mengautomasikan pelbagai tugas. Sejak pelepasan peranti Alexa Amazon, gembar -gembur di sekeliling bot automasi hanya mula berkembang. Selain Alexa, alat komunikasi lain seperti Discord dan Telegram menawarkan API untuk membangunkan bot tersuai.

Artikel ini hanya akan memberi tumpuan kepada membuat bot pertama anda dengan API Discord yang terdedah. Mungkin bot Discord yang paling terkenal adalah bot muzik. Bot muzik membolehkan anda menaip nama lagu dan bot akan melampirkan pengguna baru ke saluran anda yang memainkan lagu yang diminta. Ia adalah bot yang biasa digunakan di kalangan orang muda di pelayan permainan atau streaming.

mari kita mulakan dengan membuat bot Discord Custom.

Artikel ini dikemas kini untuk 2020. Untuk mengetahui lebih banyak nod, lihat pembangunan web Node.js. Takeaways Key

    Proses membuat bot Discord melibatkan menubuhkan pelayan ujian, menghasilkan token kebenaran, menentukan kebenaran dan menambah bot ke pelayan, menubuhkan projek, dan meneroka Discord.js.
  • Bot boleh dikawal melalui kod selepas mendaftarkannya di bawah akaun Discord pada portal pemaju Discord.
  • Bot Discord boleh diberikan keizinan untuk membaca sejarah mesej dan menghantar mesej. Ini membolehkan bot membaca sebarang mesej yang dihantar ke saluran.
  • Bot boleh diprogramkan untuk bertindak balas terhadap arahan atau mesej tertentu. Sebagai contoh, jika mesej mengandungi 'ping', bot boleh ditetapkan untuk membalas dengan 'pong'.
  • Penggunaan pengendali arahan disyorkan untuk projek besar kerana ia mengelakkan masalah yang berkaitan dengan 'lain ... jika' rantai, seperti kesukaran membaca, menyahpepijat, menganjurkan, dan mengekalkan kod.
Prasyarat

    node.js v10 atau lebih tinggi dipasang (pengetahuan asas)
  • Akaun Perselisihan dan Pelanggan Discord
  • pengetahuan asas menggunakan terminal
Langkah 1: Sediakan pelayan ujian

Pertama sekali, kita memerlukan pelayan ujian di mana kita kemudian dapat menguji bot Discord kami. Kami boleh membuat pelayan baru dengan mengklik ikon plus di sebelah kiri skrin.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js Pop-up akan dipaparkan yang meminta anda jika anda ingin menyertai pelayan atau membuat yang baru. Sudah tentu, kami ingin membuat pelayan baru.

Seterusnya, kita perlu memasukkan nama untuk pelayan kami. Untuk menjaga perkara yang mudah, saya telah menamakan pelayan Discord_playground. Jika anda mahu, anda boleh menukar lokasi pelayan bergantung pada tempat anda berada untuk mendapatkan ping yang lebih baik. Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Jika semuanya berjalan lancar, anda harus melihat pelayan yang baru dibuat.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Langkah 2: Menjana Token Auth

Apabila kita mahu mengawal bot kita melalui kod, kita perlu mendaftarkan bot terlebih dahulu di bawah akaun Discord kami.

Untuk mendaftarkan bot, pergi ke portal pemaju Discord dan log masuk dengan akaun anda.

Selepas log masuk, anda sepatutnya dapat melihat papan pemuka. Mari buat aplikasi baru dengan mengklik butang aplikasi baru .

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Seterusnya, anda akan melihat pop timbul yang meminta anda memasukkan nama untuk permohonan anda. Mari kita panggil bot kami bot-bot saya. Dengan mengklik butang

Create , Discord akan membuat aplikasi API.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js Apabila permohonan telah dibuat, anda akan melihat gambaran keseluruhan aplikasi saya yang baru dicipta. Anda akan melihat maklumat seperti ID pelanggan dan rahsia pelanggan. Rahsia ini akan digunakan kemudian sebagai token kebenaran.

3 Discord akan membina aplikasi saya-bot-bot kami dan menambah pengguna bot kepadanya.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Apabila bot telah dibina, anda mendapat gambaran keseluruhan bot tersuai anda. Lihatlah bahagian token . Salin token kebenaran ini dan tuliskannya di suatu tempat, kerana kami memerlukannya kemudian untuk menyambung ke pengguna bot kami.

Langkah 3: Tentukan keizinan dan tambahkan bot ke pelayan Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

ketiga, kami ingin menentukan keizinan untuk bot dan menambahkannya ke pelayan Discord kami.

Navigasi ke bahagian oAuth2

di bawah menu

tetapan Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js. Di sini kita boleh menentukan skop untuk bot kami. Seperti yang kita hanya mahu mengaktifkan bot yang mudah, kita memilih pilihan

bot

.

anda mungkin melihat bahawa URL kebenaran di bawah telah berubah sekarang. Walau bagaimanapun, kebenaran = 0 bahagian menunjukkan bahawa kita belum menetapkan kebenaran lagi.

Jika kita menatal lebih jauh, anda akan menemui bahagian bahagian . Kami mahu bot dapat menghantar mesej dan membaca sejarah mesej. Kami memerlukan kebenaran untuk membaca sejarah mesej supaya kami dapat mengesan permintaan pengguna. Apabila anda memilih kedua -dua pilihan, perhatikan nombor telah berubah untuk parameter kebenaran dalam url kebenaran.

Akhir sekali, salin URL ini dan tampalnya dalam penyemak imbas web kegemaran anda. Anda akan mendapat gambaran keseluruhan yang meminta pelayan mana yang anda mahu tambah bot ke. Mari pilih Discord_playground kami yang baru dibuat. Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Klik butang

PROVERIZE untuk menambah bot ke pelayan kami.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Jika anda dapat berjaya menambah bot ke pelayan anda, anda harus melihat skrin kejayaan berikut.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js Jika anda ingin menyemak semula bahawa bot anda ditambah, pergi ke saluran

Umum

. Anda harus melihat mesej yang sama yang menunjukkan bahawa bot telah menyertai saluran.

Kejayaan! Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

Langkah 4: Persediaan Projek

Akhirnya, mari kita buat projek itu. Anda boleh mencari projek asas di GitHub. Sila klon repositori secara tempatan di mesin anda menggunakan klon git https://github.com/sitePoint-editors/discord-bot-sitePoint.

Projek ini bergantung kepada dua kebergantungan, dotenv dan Discord.js. Ketergantungan pertama membolehkan kami menggunakan fail .env yang memegang token bot yang telah kami tulis. Sudah jelas kita memerlukan kebergantungan kedua, Discord.js, untuk membangunkan bot Discord.

Untuk memasang kedua -dua kebergantungan, sila laksanakan pemasangan NPM di dalam folder projek.

Akhir sekali, untuk melengkapkan pemasangan, buat fail .env dalam akar projek. Tambahkan satu pemboleh ubah persekitaran yang dipanggil token ke fail seperti ini:

Langkah 5: Meneroka Discord.js

<span>TOKEN=my-unique-bot-token
</span>
mari kita lihat fail index.js yang terletak di akar projek:

Kami mula -mula memuatkan pembolehubah persekitaran yang telah kami tentukan melalui memerlukan konfigurasi dari fail .env. Ini membolehkan kita menggunakan pemboleh ubah token yang telah kami tentukan melalui process.env.token. Barisan terakhir coretan di atas menunjukkan bagaimana kami lulus token ke fungsi log masuk untuk mendapatkan akses ke bot yang kami buat.

<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
Pembolehubah bot sebenarnya adalah pelanggan Discord kami di mana kami akan berinteraksi.

Dengar acara "Sedia"

Seterusnya, kita boleh mendengar acara. Pertama sekali, kami mendengar acara yang siap. Acara siap dipecat sebaik sahaja kami disambungkan ke bot:

Jika anda telah menggunakan token yang betul untuk log masuk ke bot, terminal anda harus mencetak nama bot bot.user.tag anda.

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>
anda boleh memulakan bot dengan hanya melaksanakan nod index.js di terminal anda. Pastikan anda melaksanakan perintah ini dalam akar projek anda.

Jika bot dihubungkan dengan jayanya, anda harus melihat nama bot anda dicetak di terminal.

Dengar acara "Mesej"

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js Selain acara

siap

, pelanggan Discord membolehkan anda mendengar acara

mesej

. Ini bermakna bot boleh membaca sebarang mesej yang dihantar ke saluran. Untuk mengikat kembali ke bahagian Kebenaran, ini adalah sebab yang tepat mengapa kita perlu memberi kebenaran bot untuk membaca sejarah mesej.

<span>TOKEN=my-unique-bot-token
</span>

Jika kita meneroka kod itu sedikit lebih jauh, anda lihat kita sedang mencari mesej dengan kandungan ping. Jika kita menerima mesej yang hanya mengandungi ping, bot balasan dengan pong. Selepas itu, kami menggunakan msg.channel.send untuk menghantar lagi pong ke saluran.

Perhatikan perbezaan antara kedua -dua arahan:

  • msg.reply: tags pengguna awal yang telah menghantar mesej
  • msg.channel.send: Hantar mesej ke saluran tanpa menandakan sesiapa

Cobalah untuk menjalankan bot dengan nod index.js dan hantar mesej ping ke saluran umum. Sahkan jika anda melihat hasil yang sama.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js

cari pengguna yang ditandakan

Untuk menambah arahan baru, kita perlu melanjutkan klausa jika kita ada dengan yang lain ... jika:

<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>
Katakan kita mahu menendang seseorang dengan menghantar mesej seperti! Kick @username. Jadi, pertama kita cari! Kick dalam kandungan mesej. Jika kita dapati mesej yang bermula dengan tendangan, kita boleh menyemak sama ada pengguna ditandai dalam mesej dengan msg.mentions.users property.

Jika terdapat pengguna yang ditandai, kami boleh memilih pengguna yang disebutkan pertama dengan msg.mentions.users.first (). Seterusnya, kami membalas saluran dengan nama pengguna pengguna dalam mesej.

Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js Langkah 6: Masalah dengan yang lain ... jika rantai

Seterusnya, mari kita bincangkan masalah dengan semua ini ... jika pernyataan. Sekiranya anda hanya mempunyai beberapa arahan yang ditakrifkan untuk mendengar dalam acara mesej, kod tersebut cukup mudah dibaca.

Walau bagaimanapun, apabila kita memutuskan untuk membina projek yang luas dengan cara ini, kita berakhir dengan rantai lain ... jika pernyataan. Berikut adalah senarai kecil sebab mengapa anda tidak boleh menggunakan lain ... jika rantai untuk apa -apa yang bukan projek kecil:

Lebih mudah menjadi mangsa kod spageti

    kod sukar dibaca
  • tidak mudah untuk debug
  • Sukar untuk mengatur kod
  • tidak mudah untuk dikekalkan apabila kod tumbuh
  • Oleh itu, mari kita lihat corak arahan yang boleh kita gunakan.
  • Melaksanakan Pengendali Perintah

Pengendali arahan adalah pendekatan yang disokong oleh pakej Discord.js. Sebelum kita meneruskan, lihat Cawangan Lanjutan dengan Git Checkout Advanced. Cawangan ini memegang pelaksanaan pengendali arahan.

Folder Command

Pertama, mari kita meneroka folder perintah. Folder ini memegang fail index.js yang mengeksport semua arahan yang akan kami tentukan. Untuk menjaga perkara yang mudah, kami hanya akan menentukan satu arahan, ping:

Seterusnya, mari kita lihat pelaksanaan perintah ping, yang pada dasarnya mengeksport objek yang mengandungi yang berikut:

  • Nama: nama arahan.
  • Penerangan: Amalan terbaik untuk menambah keterangan untuk setiap arahan.
  • Jalankan: Fungsi yang menerima MSG dan Input Args. Fungsi ini memegang logik yang sama seperti yang kita ada di dalam kita ... jika rantai.
<span>TOKEN=my-unique-bot-token
</span>

Mengimport Perintah

berterusan, mari kita mengimport arahan ke dalam fail index.js. Perhatikan kami menentukan koleksi arahan pada bot Discord. Kami gelung ke atas semua arahan dan menambahnya satu demi satu ke koleksi Perintah.

fungsi bot.commands.set menerima nama perintah dan objek perintah keseluruhan:

<span>require('dotenv').config();
</span><span>const Discord = require('discord.js');
</span><span>const bot = new Discord<span>.Client</span>();
</span>
<span>const TOKEN = process.env.TOKEN;
</span>
bot<span>.login(TOKEN);
</span>

Selepas itu, kita perlu mengeluarkan kita yang lain ... jika rantai dan menggantikannya dengan beberapa kod dinamik untuk mencari arahan yang betul yang kita mahu panggil:

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>

kita mula -mula cuba memecah kandungan mesej dengan ruang putih menggunakan .split ( / /). Kami menganggap item pertama dalam array Args ini adalah arahan kami. Untuk memeriksa sama ada perintah ada dalam koleksi kami, koleksi itu mendedahkan fungsi mempunyai (), yang hanya mengembalikan benar atau palsu. Jika arahan tidak wujud, kami mengembalikan respons kosong.

Walau bagaimanapun, jika perintah wujud, kami menggunakan fungsi GET () untuk mendapatkan arahan yang betul dan melaksanakannya dengan parameter input MSG dan ARGS.

Ia adalah cara yang mudah dibaca dan dinamik untuk memanggil arahan tanpa menulis kod spageti. Ini membolehkan anda membuat skala projek anda kepada beratus -ratus arahan jika diperlukan.

Sekali lagi, jika anda ingin menguji versi baru kod kami, pastikan anda menyemak cawangan canggih dengan Git Checkout Advanced. Seterusnya, pasang semua kebergantungan dengan NPM Pasang dan mulakan bot dengan nod index.js.

membungkus

Memasang dan menyediakan bot Discord baru mungkin terasa hebat pada mulanya. Walau bagaimanapun, API yang ditawarkan oleh pakej Discord.js adalah mudah, dan laman web Discord memberikan contoh yang hebat.

Oleh kerana tutorial ini hanya meliputi dua kebenaran, ada banyak lagi yang dapat dijumpai. Anda boleh mengetahui lebih lanjut mengenai keizinan di laman web DiscordJs.Guide.

nasib baik dengan membina bot perselisihan pertama anda!

Dengan cara ini, anda boleh menyertai komuniti Discord SitePoint dengan pautan ini. Datang bercakap berteknologi dengan kami.

Soalan Lazim (Soalan Lazim) Mengenai Membangun Bot Perbalahan dengan Node.js

Bagaimana saya boleh menambah lebih banyak fungsi ke bot Discord saya? Anda boleh menambah fungsi seperti menghantar mesej, membalas mesej, menyertai saluran suara, bermain audio, dan banyak lagi. Untuk menambah ini, anda perlu mendengar peristiwa dan kemudian melakukan tindakan berdasarkan peristiwa -peristiwa ini. Sebagai contoh, untuk membuat bot anda menghantar mesej, anda boleh menggunakan acara 'Mesej' dan kaedah 'Mesej.Channel.Send'.

bagaimana saya boleh debug bot Discord saya?

Debugging bot Discord anda melibatkan menggunakan pernyataan Console.log untuk mencetak maklumat mengenai keadaan dan tindakan bot. Anda juga boleh menggunakan alat penyahpepijatan Node.js seperti debugger terbina dalam atau alat luaran seperti debugger Visual Studio Code. Di samping itu, Perpustakaan Discord.js menyediakan peristiwa seperti 'debug' dan 'memberi amaran' bahawa anda boleh mendengar untuk mendapatkan maklumat lanjut mengenai apa yang dilakukan oleh bot.

Membuat bot Discord anda berinteraksi dengan API lain yang melibatkan menggunakan perpustakaan 'mengambil' atau 'axios' untuk menghantar permintaan HTTP. Anda boleh menggunakan perpustakaan ini untuk mendapatkan data dari API lain dan kemudian gunakan data tersebut dalam bot anda. Contohnya, anda boleh membuat bot yang mengambil data cuaca dan menghantarnya sebagai mesej dalam saluran perselisihan.

Bagaimana saya boleh menjadi tuan rumah Bot Discord saya? pada pelayan dan bukannya mesin tempatan anda. Anda boleh menggunakan penyedia hosting awan seperti Heroku, AWS, atau Google Cloud untuk ini. Penyedia ini membolehkan anda menjalankan bot anda 24/7, dan mereka sering menyediakan pangkalan data dan perkhidmatan lain yang boleh anda gunakan dengan bot anda. 🎜> Membuat bot Discord anda bertindak balas terhadap arahan tertentu melibatkan mendengar acara 'Mesej' dan kemudian menyemak jika kandungan mesej bermula dengan arahan tertentu. Anda boleh menggunakan kaedah 'StartSwith' untuk ini. Sekiranya mesej bermula dengan arahan, anda boleh melakukan tindakan tertentu. Saluran Suara melibatkan menggunakan bahagian 'suara' perpustakaan Discord.js. Anda boleh menggunakan kaedah 'JoinVoiceChannel' untuk membuat bot menyertai saluran suara, dan kemudian gunakan kaedah 'Play' untuk bermain audio. Audio boleh menjadi fail tempatan, aliran, atau url. Kelas 'Messageembed' di Perpustakaan Discord.js. Anda boleh membuat embed baru, menetapkan tajuk, keterangan, warna, imej, dan sifat lain, dan kemudian hantar menggunakan kaedah 'Mesej.Channel.Send'. Untuk mesej?

Membuat Bot Discord Bot anda bertindak balas terhadap mesej melibatkan menggunakan kaedah 'Mesej.React'. Anda boleh lulus emoji ke kaedah ini, dan bot akan bertindak balas terhadap mesej dengan emoji itu. Anda boleh menggunakan emojis tersuai dengan lulus ID mereka, atau menggunakan emojis lalai dengan lulus watak Unicode mereka.

Bagaimana saya boleh membuat kesilapan mengendalikan bot saya? Jika ralat berlaku dalam blok cuba, blok tangkapan akan dilaksanakan. Acara 'Ralat' akan dipancarkan apabila ralat berlaku di perpustakaan Discord.js. Menggunakan perpustakaan pangkalan data seperti 'Mongoose' untuk MongoDB atau 'Sequelize' untuk pangkalan data SQL. Anda boleh menggunakan perpustakaan ini untuk menyambung ke pangkalan data, menentukan model, dan kemudian membuat, membaca, mengemas kini, dan memadam data.

Atas ialah kandungan terperinci Cara Membina Bot Perselisihan Pertama Anda Dengan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn