Buat bot slack kustom

Feb 5, 2026
Bagaimana caranya
Create a custom Slack bot
(Kredit Gambar: Desainer Web)

Slack adalah alat yang semakin populer untuk bisnis dan tim yang perlu berkomunikasi secara instan. Meskipun mungkin - dalam beberapa kasus - dianggap sebagai gangguan harian, ia juga memiliki potensi otomatisasi yang hebat, menawarkan puluhan integrasi untuk menjaga semuanya di satu tempat, dan perlahan-lahan menggantikan email.

Ada banyak cara untuk mengintegrasikan sistem Anda dengan kendur; Platform bahkan menyediakan BOT bermerek yang memungkinkan Anda memberikan pengingat, atau pesan di ruang kerja digital Anda. Dan bahkan lebih banyak peningkatan kolaborasi, cobalah ini penyimpanan awan pilihan.

  • 18 dari alat kolaborasi terbaik untuk desainer

Slack menawarkan berbagai entitas yang dapat dianggap 'bot':

  • WebHooks, yang memungkinkan untuk memposting pesan dari aplikasi lain ke kendur, tetapi merupakan bentuk komunikasi satu arah,
  • Aplikasi, Untuk integrasi kemajuan (dengan aplikasi lain),
  • Pengguna Bot, Lebih banyak pada mereka segera.

Dalam tutorial ini kita akan melihat terutama pada 'pengguna bot', cara memprogramnya (lihat panduan kami ke Editor Kode Terbaik Untuk membuat hidup Anda lebih mudah) dan membuatnya sesuai dengan kebutuhan Anda. Ini mengandaikan Anda memiliki akses ke ruang kendur di mana Anda dapat menambahkan integrasi aplikasi. Jika Anda belum menjadi bagian dari satu, mereka bebas untuk membuat.

Dalam hal berikut, kami membangun aplikasi nodejs ke pasca-ke dan menanggapi pesan-pesan tertentu di saluran kendur. Kami menggunakan modul 'slackbots', yang merupakan pembungkus untuk API Pesan Real-Time Slack.

Juga tertarik membuat situs web? Pilih brilian Pembangun Situs Web dan top hosting web. layanan untuk pergi dengan itu.

01. Setup kode

Tutorial ini mengasumsikan Anda menginstal node. Jika tidak, lakukanlah sekarang. Kemudian Unduh aset kamu akan membutuhkan. Kami telah memberi Anda titik awal dan kerangka kerja untuk tutorial.

Sepanjang, kami menggunakan modul seperti 'slackbots' dan 'node-slack-upload'. Mereka dapat diperoleh dengan menjalankan perintah install.

npm install

02. Slack Setup.

Create a custom Slack bot: Slack setup

Berikan nama pengguna bot Anda dan undang ke saluran Anda (Kredit Gambar: Desainer Web)

Kami menggunakan integrasi "Pengguna Bot" untuk Slack. Untuk melakukannya, kita perlu mendapatkan token dengan pergi ke 'https: // & lt; youslackworkspace & gt; .slack.com / apps / a0f7ys25r-bot' dan klik "Tambahkan Konfigurasi".

Pilih nama pengguna untuk bot Anda (kami dapat mengesampingkan ini secara terprogram pada tahap selanjutnya), dan konfirmasi.

Undanglah bot ke saluran yang diinginkan.

Dengan membuat pengguna bot, Anda akan mendapatkan token dalam format berikut:

xoxb-000000-000000-x0x0xxxxx0xxxx0x

Salin token untuk langkah selanjutnya.

03. Variabel Lingkungan

Kami menggunakan variabel lingkungan (file '.env') untuk menghindari hard-coding dan mengungkapkan token dan kunci rahasia, seperti token kendur yang telah kami hasilkan, dan nama saluran di ruang kerja slack pribadi Anda.

Silakan dan isi file '.env' dengan token Anda, dan nama saluran tempat Anda mengundang pengguna bot.

 slack_token = xoxb- & lt; yourstoken & gt;
Slack_channel = & lt; saluran-nama & gt; 

04. Parameter Bot.

Langkah selanjutnya membawa kami ke 2 file: 'index.js', yang kami akan lihat singkat, dan 'bin / lib / bot.js', di mana sebagian besar pengembangan kami berlangsung. Dalam file indeks, kami instantiate bot kami dengan memberikan nama, yaitu 'WDMBOT'.

Dalam 'bot.js' kami mengontrol parameter setiap contoh dengan nama, token, dll.

 // index.js
const bot = membutuhkan ('./ bin / lib / bot'). init
('Wdmbot');

//bot.js.
const botparams = {
icon_emoji: ': robot_face:',
As_user: Salah
};
biarkan bot;
Fungsi initbot (botname) {
bot = baru slackbot ({{
token: proses.env.slack_token,
Nama: Botname.
});
} 

05. Posting ke Saluran

Create a custom Slack bot: Post to channel

Sekarang Anda bisa mendapatkan bot Anda mengirim pesan (Kredit Gambar: Desainer Web)

Lihatlah fungsi 'sendmessage'. Kami menggunakan metode 'Postto'. Ini akan menangani posting ke semua jenis saluran, publik atau pribadi. Jika Anda hanya ingin memposting ke saluran pribadi, Anda dapat menggunakan 'posttogroup' sebagai gantinya (atau 'posttochannel' untuk umum). Untuk mengirim pesan pertama kami, kami dapat menambahkan kode di 'initbot'.

 Fungsi initbot (botname) {
Bot = / * Lihat di atas * /
sendMessage ('Saya di sini!');
}
// sekarang jalankan 'NPM Start' 

06. Botparam kustom.

Anda seharusnya memperhatikan pesan dari WDMBOT muncul di saluran Anda. Perlu dicatat bahwa dalam 'Botparams', 'as_user' diatur ke FALSE, yang memungkinkan kami menimpa nama dan gambar. Jika diatur ke true, itu akan menggunakan nama dan gambar yang Anda tetapkan saat mendapatkan token.

Anda dapat mengubah bot emoji ke gambar seperti:

 Botparam Const = {
ICON_URL: 'https://pbs.twimb.com/
ProfilE_Images / 9761125520810688 /
Wllqvvj8d_400x400.jpg ',
As_user: Salah
}; 

07. Acara Saluran

Create a custom Slack bot: Channel events

Atur bot Anda untuk mendengarkan pesan (Kredit Gambar: Desainer Web)

Posting Pesan berguna, tetapi untuk membuat bot lebih interaktif, kita harus dapat mengidentifikasi posting dari pengguna lain di saluran. Mari kita dengarkan acara pesan, dan kemudian lihat apa yang terjadi ketika kita mengetik ke saluran. Kita harus melihat berbagai jenis pesan yang dicatat, seperti 'user_typing' atau 'pesan'.

 Fungsi initbot (botname) {
Bot = / * Lihat di atas * /
bot.on ('pesan', data = & gt; {
konsol.log (data);
});
} 

08. Menanggapi pesan yang masuk

Selanjutnya, kami ingin membalas pesan-pesan yang masuk dari jenis 'pesan', dan mungkin untuk frasa atau kata kunci tertentu, untuk menghindari jawaban yang benar-benar. Kami memastikan untuk membandingkan string huruf kecil jika kami ingin mencocokkan frasa yang tepat. Kita juga bisa melihat apakah pesan 'mencakup ()' kata tertentu.

 bot.on ('pesan', data = & gt; {
Jika (data.type === 'pesan') {
if (data.text.tolowercase () === 'di mana
Apakah kamu?') {
sendMessage ('Saya di sini!');
}
}
}); 

09. Batasi ke pengguna "manusia"

Pesan yang dikirim oleh pengguna BOT memiliki berbagai properti seperti subtipe 'bot_message' dan bot_id. Anda mungkin ingin membatasi balasan untuk hanya pesan yang diposting manusia untuk menghindari loop bot yang tak terbatas yang membalas diri mereka sendiri atau satu sama lain, jika respons mereka mencakup salah satu kata kunci yang Anda dengarkan.

 bot.on ('pesan', data = & gt; {
Jika (data.type === 'pesan' & amp; & amp; data.
subtipe! == 'bot_message') {
if (data.text.tolowercase ().
termasuk ('halo')) {
sendMessage ('Halo, aku bot!');
}
}
}); 

10. Respons yang dipersonalisasi

Untuk memberikan respons yang lebih personal, Anda dapat memanfaatkan ID pengguna dari pesan yang Anda balas. Slack akan secara otomatis mengonversi ID ke nama pengguna saat tertutup di tag '& lt; @ & gt;'. Mengidentifikasi siapa yang Anda balas dapat bermanfaat, terutama jika beberapa anggota saluran berinteraksi dengan bot Anda secara bersamaan.

 bot.on ('pesan', data = & gt; {
Jika (data.type === 'pesan' & amp; & amp; data.
subtipe! == 'bot_message') {
if (data.text.tolowercase ().
termasuk ('halo')) {
SendMessage ('Hello & Lt; @ $ {data.User}
& gt; Saya bot! ');
}
}
}); 

generate CSS

Jika Anda ingin mempelajari keterampilan kreatif dan praktis terbaru untuk mengambil pekerjaan klien, karier atau agen Anda ke tingkat berikutnya, kemudian bergabung dengan kami di menghasilkan CSS - konferensi fokus CSS kami untuk perancang dan pengembang web. Temukan lebih banyak lagi sini . Gunakan kode penawaran khusus WebDesigner2. Untuk diskon 10% untuk tiket! (Kredit Gambar: Getty / Future)

11. Perbarui Responses.

Bot juga dapat mengedit respons mereka. Hanya saja mereka sendiri. Jadi, jika Anda berharap untuk bot ketik-tiko yang akan memperbaiki pesan Anda secara otomatis ketika itu membintal kesalahan, itu tidak mungkin dengan pengaturan saat ini.

Untuk memperbarui pesan, kami mendefinisikan fungsi baru, dan boolean global yang akan kami gunakan dalam demo kami.

 Biarkan ChangeReply = FALSE;
Fungsi UpdateMessage (MessageParams) {
bot.updatemessage (messageparams.channel,
messageparams.ts, messageparams.text,
Botparams);
} 

12. Ubah pesan

Create a custom Slack bot: Changing the message

Perbarui pesan yang dikirim bot (Kredit Gambar: Desainer Web)

Mari kita coba perbarui teks bot mengirim kita. Dalam hal ini, pada acara pesan, kami perlu membalas pesan bot yang masuk, jadi kami akan mencocokkan kondisi itu untuk pembaruan, dan kami juga menggunakan cap waktu pesan asli untuk diperbarui. Itu sangat kendur dapat mengidentifikasi pesan mana yang akan diperbarui, jika orang lain diposting di antaranya.

 Jika (data.type === 'pesan' & amp; & amp; data.subtype! ==
'Bot_message' & amp; & amp; data.text) {
if (data.text.includes ('update')) {
sendMessage ('Saya akan memperbarui dalam 5
detik);
ChangeReply = Benar;
}
}
Jika (data.type === 'Pesan' & amp; & amp; data.subtype ===
'Bot_Message' & amp; & amp; ChangeReply) {
changeReply = false;
SetteOut (() = & gt; {
UpdateMessage ({Channel: Data.channel,
TS: data.ts, teks: 'Saya telah memperbarui'});
}, 5000);
} 

13. PESAN EPHEMERY

Create a custom Slack bot: Ephemeral messages

Pesan Efemeral hanya dilihat oleh satu pengguna dan dapat dihapus (Kredit Gambar: Desainer Web)

Pesan-pesan fana, karena namanya mungkin menyarankan, sementara. Mereka juga hanya terlihat oleh satu pengguna dan dapat dihapus oleh mereka. Jenis-jenis pesan tersebut mungkin berguna sebagai tip atau pengingat yang tidak perlu tetap secara permanen.

 Jika (data.text.tolowercase (). Termasuk ('SDM')) {
EphemeralMessage ({
saluran: data.channel,
Pengguna: Data.User,
Teks: 'Jika Anda perlu menghubungi HR,
Email mereka adalah [email protected] '
});
}

// fungsi yang kami panggil
Fungsi EphemeralMessage (MessageParams) {
bot.postephemeral (messageparams.channel,
messageparams.user, messageparams.text,
Botparams);
} 

14. Pencarian Pengguna

Metode yang berbeda akan mengambil parameter pengguna yang sedikit berbeda (ID atau nama, yang berbeda dari display_name dan real_name). Namun, hanya ID pengguna yang tersedia di acara pesan. Karena itu kami dapat mengimplementasikan pencarian nama pengguna dengan mendapatkan semua pengguna dan mencocokkan ID.

 fungsi async getusername (userid) {
kembali menunggu bot.getusers ()
. Kemudian (data = & gt; {
Biarkan anggota = data.members.find
(pengguna = & gt; {
Kembalikan user.id === userid;
});
anggota kembali.name;
})
.catch (err = & gt; console.log (err));
} 

15. Kirim pesan langsung

Dengan pencarian pengguna baru, kami sekarang dapat mengirim pesan langsung ke pengguna, ketika pesan fana tidak akan melakukannya. Perhatikan bahwa pesan langsung dianggap sebagai saluran baru / berbeda, dengan ID yang berbeda dari pada saluran asli. Anda juga dapat menerapkan pencarian saluran dengan cara yang sama seperti yang kami lakukan sebelumnya.

 // di acara pesan
if (data.text.tolowercase (). Termasuk ('bot')) {
Senddm ({
Pengguna: Data.User,
Teks: 'Bagaimana saya bisa membantu?'
});
}
// fungsi yang kami panggil
Fungsi Async Senddm (MessageParams) {
Biarkan pengguna = menunggu getusername
(messageparams.user);
Kembalikan bot.postmessagetouser (pengguna, pesan
Params.text, botparams, (err, data) = & gt; {
konsol.log (err)
});
} 

16. Tanggapi dengan gambar

Pengguna BOT juga memiliki izin untuk mengunggah file dan gambar ke saluran. Fungsi ini tidak ditanggung oleh 'slackbots', jadi kami harus instantiate pengunggah baru, seperti yang ditunjukkan di bawah ini. Juga menyiapkan folder 'Aset' di root proyek Anda, dengan beberapa gambar di dalamnya.

Mari menyiapkan panggilan ke 'sendimage ()', didefinisikan pada langkah berikutnya.

 // di initbot ()
Uploader = baru slackupload (proses.env.
Slack_token);

// di acara pesan
if (data.text.includes ('gambar')) {
Jika (! Data.Upload) {
/ * Dalam hal ini, tidak ada pesan
subtipe,
jadi kami memeriksa bahwa itu tidak dipicu oleh a
Pesan unggahan sebelumnya * /
biarkan gambar = data.text.split ('') 
; sendimage ('ini gambar Anda ingin ', gambar); } }

17. Fungsi unggahan file

Create a custom Slack bot: The file upload function

Gunakan pengunggah dan sistem file untuk mengunggah gambar (Kredit Gambar: Desainer Web)

Kami mengunggah gambar menggunakan modul pengunggah dan sistem file (FS). Asalkan pesan pengguna dalam format "image & lt; imagename.extension & gt;", dan file seperti itu ada di folder 'Aset', gambar akan dibaca dan diunggah. Jika tidak, kami mengirim kembali pesan biasa (bahkan bisa menjadi ephemeral).

Fungsi Sendimage (Pesan, Gambar) {
uploader.uploadfile ({{
File: fs.cteigheadstream (path.join
(__dirname, '../../assets/$mage}'),
Mimetype: 'Image / *',
Filetype: '*',
Judul: Gambar,
Inisial: Pesan,
Saluran: Channel.
}, (err, data) = & gt; {
if (err) {
sendMessage ('Maaf saya tidak dapat menemukan
$ {image} ');
}
});
} 

18. Posting ke beberapa saluran

Anda dapat memposting ke beberapa saluran dengan pengguna bot yang sama, selama ini adalah anggota dari setiap saluran di mana Anda mengharapkan respons. Mari kita buat fungsi 'posttoad' dan perbarui variabel lingkungan untuk memiliki nama saluran sebagai nilai yang dipisahkan koma.

 Const Channels = Process.env.slack_channel.
membagi(',');
const channel = saluran 
; Fungsi posttoall (pesan) { saluran. Tukar (saluran = & gt; { bot.postto (saluran, pesan, botparams); }); }

19. Split Channels.

Kadang-kadang, Anda mungkin ingin menggunakan saluran untuk debugging, atau menanggapi peristiwa secara berbeda dengan bot yang sama di berbagai saluran. Terserah Anda untuk berolahraga konvensi penamaan saluran Anda. Kami akan berasumsi untuk contoh berikut bahwa slack_channel = wdm-tutorial, wdm-tutorial-debug.

 Fungsi SplitMessages (Pesan, DebugMessage) {
saluran. Tukar (saluran = & gt; {
const msg = channel.includes ('debug')
? debugmessage: pesan;
bot.postto (saluran, msg, botparams);
});
} 

20. Kamus tanggapan

Kami telah melakukan tanggapan keras secara langsung dalam pesan. Ke depan, untuk membuat segalanya lebih mudah dikelola, Anda mungkin ingin menyimpan pemicu dan tanggapan, baik dalam format basis data atau JSON, dan beralih di antara mereka tergantung pada kondisinya.

 // contoh item respons
{
Input: 'SDM',
InputMatch: 'termasuk',
Tanggapan: 'Jika Anda perlu menghubungi HR,
Email mereka adalah [email protected] ',
ResponseType: 'Ephemeral'
} 

21. Sumber daya lebih lanjut

Create a custom Slack bot: Further resources

Ada lebih banyak info bot yang ditemukan di tempat lain (Kredit Gambar: Desainer Web)

Ada beberapa sifat berguna lainnya yang tersedia dalam API Slack. Mudah-mudahan, tutorial ini akan diberikan gambaran tentang apa yang mungkin untuk semua kebutuhan bot Anda. Sumber daya lebih lanjut dapat ditemukan dengan membaca Dokumentasi 'Slackbots' , atau penuh Dokumentasi API Slack. .

Artikel ini awalnya diterbitkan dalam Edisi 289 dari Majalah Desain Web Kreatif Desainer web . Beli masalah 289 di sini atau berlangganan desainer web di sini .

Artikel terkait:

  • Bangun chatbot bertenaga AI
  • Slack's memiliki pembaruan besar-besaran dan Anda semua akan menyukainya
  • Cara Merancang Pengalaman Chatbot

Bagaimana caranya - Artikel Terpopuler

Cara membuat pemindaian 3D dengan reality capture

Bagaimana caranya Feb 5, 2026

(Kredit Gambar: Phil Nolan) Realitas Capture adalah cara yang bagus untuk membuat pemindaian 3D Anda sendiri. Yang An..


Bangun portal klien dengan WordPress

Bagaimana caranya Feb 5, 2026

(Kredit Gambar: Desainer Web) Memiliki area yang memungkinkan pengguna untuk masuk dan mengunduh atau melihat dokumen..


Persiapan dengan WebVR

Bagaimana caranya Feb 5, 2026

Langsung ke: Sumber Daya WebVR. WebVR adala..


Tambahkan dukungan multi-bahasa ke Angular

Bagaimana caranya Feb 5, 2026

Dalam tutorial ini kami akan membawa Anda melalui proses membuat aplikasi Anda dapat diakses dan ramah pengguna untuk orang-orang..


Master Alat Jembatan

Bagaimana caranya Feb 5, 2026

Apa alat jembatan? Jika Anda baru mengenal CGI, ada terlalu banyak alat untuk dipilih dalam berbagai perangkat luna..


Buat pesan sempurna di semua klien email

Bagaimana caranya Feb 5, 2026

Untuk kampanye pemasaran email untuk bekerja, email harus mencapai kotak masuk dan menonjol dari yang lainnya. Namun, ceritanya tidak berakhir di sana. Email Anda harus render jika Anda ingin..


cat potret hewan peliharaan berbulu

Bagaimana caranya Feb 5, 2026

Potret kucing jadi kami Lukisan hewan peliharaan dan menggambar binatang bisa sangat menyenangk..


Buat kuas stiker kustom di artrage

Bagaimana caranya Feb 5, 2026

Saya menggunakan semprotan stiker di Artrage. - Alat seni yang luar biasa, terutama jika Anda membuat kepala sikat..


Kategori