Özel bir gevşek bot oluşturun

Sep 16, 2025
Nasıl Yapılır
Create a custom Slack bot
(Resim Kredi: Web Tasarımcısı)

Durgunluk, anında iletişim kurması gereken işletmeler ve ekipler için giderek daha popüler bir araçtır. Olabilirken - bazı durumlarda - günlük bir bozulma olarak kabul edilirken, aynı zamanda her şeyi tek bir yerde tutmak için onlarca entegrasyon sunan harika bir otomasyon potansiyeli vardır ve e-postaları yavaşça değiştirir.

Sistemlerinizi gevşeklikle entegre etmenin birçok yolu vardır; Platform bile, dijital çalışma alanınızdaki hatırlatıcı veya mesajları teslim etmeni sağlayan markalı bir bot sağlar. Ve daha da fazla işbirliği geliştirmeleri için bunları deneyin Bulut depolama Seçenekler.

  • Tasarımcılar için en iyi işbirliği araçlarından 18

Slack 'Bot' olarak kabul edilebilecek çeşitli varlıklar sunar:

  • Webhooks, Bu, diğer uygulamalardan gevşeyin, ancak tek yönlü bir iletişim şeklidir.
  • Uygulamalar, Gelişen entegrasyonları için (diğer uygulamalarla),
  • Bot kullanıcıları, Kısa süre sonra daha fazlası.

Bu eğitimde, özellikle 'bot kullanıcıları', nasıl programlayacağız (rehberimize göz atın. En İyi Kod Editörleri Hayatınızı kolaylaştırmak için) ve ihtiyaçlarınızı karşılamalarını sağlayın. Bu, uygulama entegrasyonlarını ekleyebileceğiniz gevşek bir alana erişiminiz olduğunu varsayar. Eğer birinin bir parçası değilseniz, oluşturmakta özgürler.

Noktalarında, belirli mesajları gevşek bir kanalda yayınlamak ve yanıtlamak için bir NODEJS uygulaması oluştururuz. Gevşek gerçek zamanlı mesajlaşma API için bir sarmalayıcı olan 'Slackbots' modülünü kullanıyoruz.

Ayrıca bir web sitesi yapmak ister misiniz? Parlak bir seçim Web Sitesi Oluşturucu ve üst ağ sağlayıcısı onunla gitmek için servis.

01. Kod Kurulumu

Bu öğretici, düğüm kurulu olduğunuzu varsayar. Değilse, şimdi yap. Sonra Varlıkları indirin ihtiyacın olacak. Size öğretici için bir başlangıç ​​noktası ve çerçeve sağladık.

Boyunca, 'Slackbots' ve 'Düğüm-Slack-Upload' gibi modülleri kullanıyoruz. Kurulum komutunu çalıştırarak elde edilebilirler.

npm install

02. Gevşek Kurulumu

Create a custom Slack bot: Slack setup

Bot'unuzu bir kullanıcı adı verin ve kanalınıza davet edin (Resim Kredi: Web Tasarımcısı)

Boşluk için "Bot Kullanıcı" entegrasyonunu kullanıyoruz. Bunu yapmak için, 'https: // & lt; younlackworkspace & gt; .slack.com / APPS / A0F7YS25R-Botlar' olacak şekilde bir jeton almamız gerekiyor ve "Yapılandırma Ekle" ye tıklayın.

Botunuz için bir kullanıcı adı seçin (bu programsal olarak daha sonraki bir aşamada geçersiz kılabiliriz) ve onaylayın.

Botu istenen kanala davet edin.

Bir bot kullanıcısı oluşturarak aşağıdaki formatta bir belirteç elde edersiniz:

xoxb-000000-000000-x0x0xxxxx0xxxx0x

Bir sonraki adım için belirteci kopyalayın.

03. Çevre değişkenleri

Ürettiğimiz gevşek belirteç ve özel gevşek çalışma alanınızdaki kanal ismi gibi, gizli belirteçleri ve anahtarları ve kanal adını ve özel gevşek çalışma alanındaki kanal adını ve açığa çıkarmak için çevre değişkenlerini (bir '.Env' dosyasını) kullanıyoruz.

Devam edin ve '.env' dosyasını belirteçlerinizle doldurun ve bot kullanıcısını davet ettiğiniz kanalın adı.

 slack_token = xoxb- & lt; yourtoken & gt;
Slack_Channel = & lt; kanal adı ve GT; 

04. Bot parametreleri

Bu bir sonraki adım bizi 2 dosyaya götürür: 'index.js', hangisinin kısa bir bakışına sahip olacağımız ve gelişimimizin çoğunun gerçekleştiği 'Bin / Lib / Bot.js'. Endeks dosyasında, botumuzu 'wdmbot' olan bir isim vererek başlatırız.

'Bot.js' de, her bir örneğin parametrelerini isim, jeton vb. İle kontrol ediyoruz.

 // index.js
Const Bot = ('./ bin / lib / bot') gerektirir. init
('Wdmbot');

//bot.js
const botparams = {
icon_emoji: ': robot_face:',
as_user: yanlış
};
bot olsun;
İşlev Initbot (Botname) {
bot = yeni slackbot ({
jeton: proses.env.slack_token,
İsim: botname
});
} 

05. Kanala gönder

Create a custom Slack bot: Post to channel

Şimdi botunuzu mesaj göndermek için alabilirsin (Resim Kredi: Web Tasarımcısı)

'SendMessage' işlevine bir göz atın. 'Postto' yöntemini kullanıyoruz. Bu, herhangi bir kanala, halka açık veya özel olarak ilan yapacak. Yalnızca özel kanallara göndermek istiyorsanız, bunun yerine 'PostToGROUP' kullanabilirsiniz (veya halka açık olanı için 'PostToChannel'. İlk mesajımızı göndermek için 'initbot' için kod ekleyebiliriz.

 İşlev Initbot (Botname) {
bot = / * Yukarıya bakın * /
SendMessage ('Buradayım!');
}
// Şimdi 'NPM Başlat'ı çalıştırın 

06. Özel Botparams

Kanalınızda WDMBot göründüğü bir mesajı fark etmeliydiniz. 'Botparams', 'as_user' de yanlış olarak ayarlandığını belirtmekte fayda var, bu da ismi ve imajı geçersiz kılar. Doğru olarak ayarlanırsa, belirteç alırken ayarladığınız ad ve resmi kullanır.

Bot emoji'yi böyle bir resme değiştirebilirsiniz:

 const botparams = {
icon_url: 'https://pbs.twimg.com/
profili_images / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
as_user: yanlış
}; 

07. Kanal Etkinlikleri

Create a custom Slack bot: Channel events

BOT'unuzu mesajları dinlemek için ayarlayın (Resim Kredi: Web Tasarımcısı)

Mesajlar göndermek faydalıdır, ancak botu daha etkileşimli hale getirmek için, kanaldaki diğer kullanıcılardan gönderileri tanımlayabilmemiz gerekir. Mesaj olayını dinleyelim ve ardından kanala girdiğimizde ne olacağını görün. 'User_typing' veya 'Mesaj' gibi farklı mesaj türlerini görmeliyiz.

 İşlev Initbot (Botname) {
bot = / * Yukarıya bakın * /
bot.on ('mesaj', veri = ve gt; {
konsol.log (veriler);
});
} 

08. Gelen mesajlara cevap verin

Daha sonra, kesinlikle her şeyi yanıtlamaktan kaçınmak için 'Mesaj' türünün gelen mesajlarına ve belki belirli bir cümleye veya anahtar sözcüğe cevap vermek istiyoruz. Kesin bir cümleyi eşleştirmek istiyorsak, küçük harfleri karşılaştırdığınızdan emin olun. Ayrıca, bir mesajın belirli bir kelimeyi içerip içermediğini de görebiliriz.

 Bot.on ('Mesaj', Veri = ve GT; {
Eğer (data.type === 'mesajı') {
Eğer (Data.Text.TolowerCase () === 'ise
sen?') {
SendMessage ('Buradayım!');
}
}
}); 

09. "İnsan" kullanıcılarını kısıtlamak

BOT kullanıcıları tarafından gönderilen mesajlar 'Bot_Message' alt tipi ve bir BOT_ID tipi gibi çeşitli özelliklere sahiptir. Cevaplarını kendilerine veya birbirlerine cevap veren sonsuz döngülerden kaçınmak için sadece insandan gönderilen mesajların yanıtlamasını kısıtlamak isteyebilirsiniz, eğer cevapları dinlersiniz anahtar kelimelerden birini içeriyorsa.

 Bot.on ('Mesaj', Veri = ve GT; {
if (data.type === 'mesajı' ve amp; ve amp; veriler.
alt tip! == 'bot_message') {
if (Data.Text.TolowerCase ().
içerir ('merhaba')) {
sendmessage ('Merhaba, ben bir bot!');
}
}
}); 

10. Kişiselleştirilmiş Yanıt

Daha kişiselleştirilmiş bir yanıt vermek için, cevapladığınız mesajın kullanıcı kimliğini kaldırabilirsiniz. Gevşekleme, etiketlerde bulunduğunuzda bir kimliği otomatik olarak kullanıcı adına dönüştürecektir. Kimi yanıtladığınızı belirlemek, özellikle birden fazla kanal üyesi botunuzla aynı anda etkileşime giriyorsa, faydalı olabilir.

 Bot.on ('Mesaj', Veri = ve GT; {
if (data.type === 'mesajı' ve amp; ve amp; veriler.
alt tip! == 'bot_message') {
if (Data.Text.TolowerCase ().
içerir ('merhaba')) {
SendMessage ('Hello & LT; @ $ {Data.User}
& gt; Ben bir robotum!');
}
}
}); 

generate CSS

Müşteri çalışmalarınızı, kariyerinizi veya ajansınızı bir sonraki seviyeye çıkarmak için en son yaratıcı ve pratik becerileri öğrenmek istiyorsanız, Bize CSS-Odaklı Konferansımız Web Tasarımcıları ve Geliştiriciler için Bize katılın. Daha fazlasını bul İşte . Özel teklif kodunu kullanın WebDesigner2 Biletlerde% 10 indirim için! (Görüntü Kredi: Getty / Gelecek)

11. GÜNCELLEME YANITLARI

Botlar da cevaplarını düzenleyebilir. Yine de sadece kendi. Öyleyse, mesajlarınızı otomatik olarak bir hata yaptığında otomatik olarak düzeltecek bir botu umuyorsanız, geçerli kurulumda mümkün değildir.

Mesajı güncellemek için, yeni bir işlevi ve demosumuzda kullanacağımız küresel bir Boolean'ı tanımlıyoruz.

 ChangerPree = false izin verin;
İşlev Updatemessage (MessageParams) {
bot.Updatemessage (MessageParams.Channel,
MessageParams.ts, MessageParams.Text,
botparams);
} 

12. Mesajı değiştirin

Create a custom Slack bot: Changing the message

Botun gönderdiği mesajları güncelleyin (Resim Kredi: Web Tasarımcısı)

Bot bizi gönderen metni güncellemeye çalışalım. Bu durumda, bir mesaj olayında, gelen bir bot mesajına cevap vermemiz gerekir, bu yüzden güncelleme için bu durumla eşleşeceğiz ve ayrıca güncellenecek orijinal mesajın zaman damgasını da kullanırız. Bu kadar gevşek, başkalarının arada yayınlanması durumunda, hangi mesajın güncelleneceğini belirleyebilir.

 Eğer (data.type === 'mesajı' ve amp; Data.SubType! ==
'Bot_Message' & amp; & amp; data.text) {
if (data.text.includes ('güncelleme')) {
SendMessage ('5'te güncelleyeceğim
saniye ');
ChangerPleply = Doğru;
}
}
Eğer (data.type === 'mesajı' ve amp; ve amp; data.subtype ===
'Bot_Message' & amp; & amp; changerly) {
ChangerePly = Yanlış;
settimeout (() = & gt; {
Updatemessage ({Kanal: Data.Channel,
TS: DATA.TS, Metin: 'Ben güncelledim'});
}, 5000);
} 

13. EFEMERAL MESAJLAR

Create a custom Slack bot: Ephemeral messages

Geçici mesajlar yalnızca bir kullanıcı tarafından görülür ve silinebilir (Resim Kredi: Web Tasarımcısı)

Efemeral mesajlar, isim önerebileceğinden, geçicidir. Ayrıca sadece bir kullanıcıya görülebilir ve onlar tarafından silinebilirler. Bu tür mesajlar, kalıcı olarak kalması gerekmeyen bir ipucu veya hatırlatma olarak faydalı olabilir.

 Eğer (Data.Text.TolowerCase (). ('HR') dahildir ('hr')) {
ephemeralmessage ({
Kanal: Data.Channel,
Kullanıcı: Data.User,
Metin: 'HR ile iletişime geçmeniz gerekiyorsa,
e-postaları [email protected] '.
});
}

// aradığımız işlev
fonksiyon ephemeralmessage (messageParams) {
Bot.Postephemeral (MessageParams.Channel,
MessageParams.USer, MessageParams.Text,
botparams);
} 

14. Kullanıcı araması

Farklı yöntemler biraz farklı kullanıcı parametresini (kimlik veya isim, ekran_adı ve real_ adından farklı olan) alacaktır. Ancak, mesaj olaylarında yalnızca kullanıcı kimliği mevcuttur. Bu nedenle, tüm kullanıcıları alıp kimliğe eşleştirerek bir kullanıcı adı araması uygulayabiliriz.

 Async Function GetUserName (userid) {
geri dönüş bot.getusers ()
.Then (veri = ve gt; {
Üye = data.members.find
(kullanıcı = ve gt; {
geri dönüş user.id === userid;
});
iade üyesi.Name;
})
.catch (err = & gt; console.log (err));
} 

15. Doğrudan Mesaj Gönder

Yeni kullanıcı aramasıyla, şimdi geçici mesajlar sadece yapmayacaksa, bir kullanıcıya doğrudan mesaj gönderebiliriz. Doğrudan mesajların, orijinal kanaldan farklı bir kimliği olan yeni / farklı bir kanal olarak kabul edildiğini unutmayın. Ayrıca, daha önce yaptığımız kullanıcı ile aynı şekilde bir kanal araması uygulayabilirsiniz.

 // Mesaj olayında
if (Data.Text.TolowerCase (). ('Bot')))
senddm ({
Kullanıcı: Data.User,
Metin: 'Nasıl yardımcı olabilirim?'
});
}
// aradığımız işlev
Async Function SendDM (MessageParams) {
Kullanıcının = GetUserName'i bekletmesine izin verin
(MessageParams.USER);
bot.postmessagetouser dönüş (kullanıcı, mesaj
Param.text, botparams, (err, veri) = & gt; {
console.log (err)
});
} 

16. Bir görüntü ile cevap verin

BOT kullanıcılarının ayrıca dosya ve görüntüleri bir kanala yükleme izinleri vardır. Bu işlevsellik olsa da 'Slackbots' tarafından karşılanmıyor, bu yüzden aşağıda gösterildiği gibi yeni bir yükleyiciyi başlatmak zorundayız. Ayrıca, içindeki bazı görüntülerle proje kökünüzde bir 'varlıklar klasörü hazırlayın.

Bir sonraki adımda tanımlanan 'Sendimage ()' için bir arama hazırlayalım.

 // initbot () 'de
Yükleyici = Yeni SlackUpload (Proses.Env.
Slack_token);

// Mesaj olayında
if (data.text.includes ('image')) {
if (! data.upload) {
/ * Bu durumda, mesaj yok
Alt tipi,
Bu yüzden bir tarafından tetiklenmediğini kontrol ediyoruz.
Önceki Yükleme Mesajı * /
image = data.text.split ('') 
; Sendimage ('Bu resim aranıyor ', görüntü); } }

17. Dosya yükleme işlevi

Create a custom Slack bot: The file upload function

Görüntü yüklemek için yükleyiciyi ve dosya sistemini kullanın. (Resim Kredi: Web Tasarımcısı)

Yükleyiciyi ve dosya sistemi (FS) modülünü kullanarak görüntüler yükleriz. Bir kullanıcının mesajının "görüntü" formatında olması şartıyla ve böyle bir dosya 'varlıklar' klasöründe bulunur, görüntü okunur ve yüklenir. Değilse, normal bir mesajı geri göndeririz (hatta bir efemeral olanı bile olabilir).

fonksiyon sendimage (mesaj, resim) {
uploader.uploadfile ({
Dosya: Fs.CreateadStream (Path.Join
(__dirname, '../../assets/$Image}')),
Mimetype: 'Görüntü / *',
dosya tipi: '*',
Başlık: Görüntü,
Site: Mesaj,
Kanallar: Kanal
}, (err, veriler) = & gt; {
if (err) {
SendMessage ('Üzgünüm bulamıyorum
$ {image} ');
}
});
} 

18. Birden fazla kanala gönderin

Bir yanıt beklediğiniz her bir kanalın üyesi olduğu sürece, aynı bot kullanıcısına sahip birden fazla kanala gönderebilirsiniz. Bir 'Posttoall' işlevi yaratalım ve çevre değişkenlerini virgülle ayrılmış değerler olarak kanal adlarına sahip olacak şekilde güncelleyelim.

 Const Channels = proses.env.slack_channel.
Bölünmüş(',');
Const Channel = Kanallar 
; fonksiyon posttoall (mesaj) { channels.foreach (kanal = ve gt; { bot.postto (kanal, mesaj, botparams); }); }

19. Bölünmüş Kanallar

Bazen, hata ayıklama için kanalları kullanmak veya farklı kanallarda aynı botla farklı olaylara cevap vermek isteyebilirsiniz. Kanal adlandırma kuralınızı antrenman yapmak size kalmış. Slack_Channel = WDM-Tutorial, WDM-Tutorial-Debug'un aşağıdaki örneği kabul edeceğiz.

 İşlev SplitMessages (Mesaj, DebugMessage) {
channels.foreach (kanal = ve gt; {
const msg = kanal.inkudes ('hata ayıklama')
? DebugMessage: Mesaj;
bot.postto (kanal, msg, botparams);
});
} 

20. Cevap Sözlüğü

Doğrudan mesajda doğrudan kodlama cevapları verdik. İleriye doğru ilerlemek, işleri daha yönetilebilir hale getirmek için, bir veritabanı veya JSON formatında tetikleyicileri ve yanıtları saklamak isteyebilirsiniz ve bunlarla karşılaşılan koşullara bağlı olarak aralarında geçiş yapabilirsiniz.

 // Örnek Yanıt Öğesi
{
Giriş: 'Hr',
Giriş Match: 'Dahil Et',
Yanıt: 'HR ile iletişime geçmeniz gerekiyorsa,
e-postaları [email protected] ',
Sorumlu: 'efemeral'
} 

21. Daha fazla kaynak

Create a custom Slack bot: Further resources

Başka yerde bulunacak çok daha fazla bot bilgisi var (Resim Kredi: Web Tasarımcısı)

Slack API'de başka birkaç faydalı özellik var. Umarım, bu öğretici, tüm botlarınızın ihtiyaçlarınız için mümkün olanlara genel bir bakış vermiş olacaktır. Daha fazla kaynak, okunarak bulunabilir. 'Slackbots' belgeleri ya da dolu Gevşek API belgeleri .

Bu makale başlangıçta yaratıcı web tasarım dergisinin 289 sayısında yayınlandı. Web tasarımcısı . Sayı 289 burada satın al veya Burada web tasarımcısına abone olun .

İlgili Makaleler:

  • AI motorlu bir chatbot oluşturun
  • Slack'in büyük bir güncellemesi vardı ve hepiniz onu seveceksiniz
  • Bir chatbot deneyimi nasıl tasarlanır

Nasıl Yapılır - En Popüler Makaleler

Daha iyi karakter animasyonları oluşturmanın 10 yolu

Nasıl Yapılır Sep 16, 2025

3B endüstrinin büyüme yılı yılın büyüklüğünde, işinizin kalabalıktan çıktığından emin olmaktan her zamankinden daha önemlidir. Beceri seviyeniz 3D sanatçı olarak ne olur..


Bir kedi nasıl çizilir

Nasıl Yapılır Sep 16, 2025

Bir kedi nasıl çizileceğini bilmek ister misin? Doğru yere geldiniz. Çizim hayvanlar zor olabilir, ancak doğru aldıktan so..


Kendi karakterinizi nasıl yapılır?

Nasıl Yapılır Sep 16, 2025

Profesyonel olarak çalışan herkes için karakter tasarımı , bir karakter İncil, iş akışınızın en önem..


Bir tavanın labirent tarzı canavarı nasıl oluşturulur

Nasıl Yapılır Sep 16, 2025

Sayfa 1/2: Sayfa 1 Sayfa 1 Sayfa 2 ..


Fantasy canavarları nasıl boyanır

Nasıl Yapılır Sep 16, 2025

Bir fantezi yaratığı için bir fikir bulduktan sonra, bir sonraki adım inanılır renk ve dokularla boyayarak hayata geçirme..


Maya'da bir portal etkisi oluşturun

Nasıl Yapılır Sep 16, 2025

Garipteki bu portal etkisi çok özeldi. Bu, bu konuda görsel efektlerden daha fazla hareketli grafiklere yaslanmayan filmdeki t..


Boya kontrollü ve pürüzsüz vuruşlar ile eskiz

Nasıl Yapılır Sep 16, 2025

Kabartılabilir Windows 10 için bir resim uygulamasıdır. LAG olmadan büyük görüntülerde büyük görüntüleri boyamanızı sağlar. Görüntüler, herhangi bir boyutta he..


Sanatınızın kaliteli dijital kopyalarını oluşturun

Nasıl Yapılır Sep 16, 2025

Sanat sadece yaratıcı değil, aynı zamanda paylaşım hakkında. Gurur duyduğunuz güzel bir iş çıkardığınızda, sadece başkalarının da görmesini istemeyeceğiniz doğaldır. Bu..


Kategoriler